OpenLiteSpeed1.7.0のlsphpでmemcachedを有効?にしてみたメモ。
今回はWEBサーバ高速化のお話。
タイトルのmemcachedとは、非常に高速な分散メモリキャッシュサーバです。
WEBアプリケーションはその裏側にデータベースがあります。WordpressなどのCMSもWEBアプリケーションに含まれます。
各記事データがデータベース内に格納されています。そしてブログが閲覧されると、各記事の該当データがデータベースから引き出すようリクエストされ、その結果がブラウザ等に表示される仕組みです。
しかしデータが大量になってきたり,アクセスが集中すると、データベースの負荷があがり、レスポンスが悪化し、Webサイト上の表示が遅延するなどの影響がでます。
memcachedてなに?
そこでmemcachedの出番です。
memcachedは最初にも書きましたが、高性能な分散メモリキャッシュサーバです。データベースへの問い合わせ結果を一時的にキャッシュします。
これにより、データベースへのアクセス回数を減らし、動的なウェブアプリケーションの高速化。また負荷軽減をさせることでスケーラビリティ向上にもつながります。つまり、より大量のアクセスに対応できるということになります。
memcachedの利用イメージとしては以下になります。
何度か筆者のこのブログでは記事にしていますが、現在の本WEBサーバはUbuntuServer19.10上にOpenLiteSpeedというマニアックなサーバアプリケーションで運用しています。
OpenLiteSpeedのバージョンは1.7.0RC1。
以下のコマンドで確認したところ、memcached.soへのリンクが無効になっているようでした。
$ /usr/local/lsws/fcgi-bin/lsphp7 -V
PHP Warning: PHP Startup: Unable to load dynamic library 'memcached.so'
(tried: /usr/local/lsws/lsphp7/lib/php/extensions/no-debug-non-zts-20190902/memcached.so
(/usr/local/lsws/lsphp7/lib/php/extensions/no-debug-non-zts-20190902/memcached.so: cannot open shared object file: No such file or directory),
/usr/local/lsws/lsphp7/lib/php/extensions/no-debug-non-zts-20190902/memcached.so.so
(/usr/local/lsws/lsphp7/lib/php/extensions/no-debug-non-zts-20190902/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
$ apt list |grep memcached
memcached/eoan,now 1.5.10-0ubuntu3 amd64 [インストール済み]
でもmemcachedはインストールしてあったのですけどね。
どうやらそれだけではダメなようです。
なのでlibmemcachedを追加でインストールしました。
$ sudo apt install libmemcached
以下のパッケージが新たにインストールされます:
libhashkit-dev libhashkit2 libmemcached-dev libmemcached11 libmemcachedutil2 libsasl2-dev
上記インストール後、php.iniを編集します。
sudo vi /usr/local/lsws/lsphp7/lib/php.ini
extension箇所を「memcached.so」にして保存して、WEBサーバを再起動しました。
extension=memcached.so
すると先ほどの以下コマンド実施でもエラーは表示されなくなりました。
$ /usr/local/lsws/fcgi-bin/lsphp7 -V
ひとまずはここまでかな