今回はWEBサーバ高速化のお話。
タイトルのmemcachedとは、非常に高速な分散メモリキャッシュサーバです。

WEBアプリケーションはその裏側にデータベースがあります。WordpressなどのCMSもWEBアプリケーションに含まれます。
各記事データがデータベース内に格納されています。そしてブログが閲覧されると、各記事の該当データがデータベースから引き出すようリクエストされ、その結果がブラウザ等に表示される仕組みです。

しかしデータが大量になってきたり,アクセスが集中すると、データベースの負荷があがり、レスポンスが悪化し、Webサイト上の表示が遅延するなどの影響がでます。

memcachedてなに?

そこでmemcachedの出番です。
memcachedは最初にも書きましたが、高性能な分散メモリキャッシュサーバです。データベースへの問い合わせ結果を一時的にキャッシュします。

これにより、データベースへのアクセス回数を減らし、動的なウェブアプリケーションの高速化。また負荷軽減をさせることでスケーラビリティ向上にもつながります。つまり、より大量のアクセスに対応できるということになります。

memcachedの利用イメージとしては以下になります。

※以下サイトからの引用です。
https://gihyo.jp/dev/feature/01/memcached/0001

何度か筆者のこのブログでは記事にしていますが、現在の本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

ひとまずはここまでかな