WordPressでメモリを節約しつつ高速化する設定方法
2014/09/08
メモリ1GのVPSを借りてWordpress以外にも、ちょいちょいものを置いているんだけど、色々調整しないとメモリが苦しい。
今後もVPS借りた時に使いそうな設定なのでメモしておく。
■MySQLの設定
find / -name my.cnfで設定ファイルの場所調べて以下の設定を追記。
[mysqld] query_cache_limit=1M query_cache_min_res_unit=4k query_cache_size=24M query_cache_type=1 key_buffer = 16M sort_buffer_size = 1M read_buffer_size = 256K
■PHPの設定
find / -name php.iniで設定ファイルの場所調べる。
memory_limit = 32M
元々は16Mでやってたけど、つい最近(2014年7月)ぐらいでWordPressのプラグイン更新したら管理画面側が真っ白に……。なので32M。
■APCの導入
下記記事参考に導入。
APCの導入。pecl install apcで入らなかったのでyumで導入。
https://taitan916.info/blog/?p=1723
設定はデフォルトのままいきました。
使用メモリを一旦下げたんだけど逆に遅くなった。
下記サイトさん見る感じではメモリ1Gで64Mなのでぴったし。
php および APC の設定を行う
http://server-setting.info/centos/php5-2_setting.html
httpd1件あたりのメモリ消費が多少抑えられた気がする。
あとWordPressの管理画面が体感的に早くなった。
■APCよりOpcacheの方がいいかも(2014/7/8追記)
設定方法は下記参照
https://taitan916.info/blog/?p=1744
■キャッシュ系プラグインの導入
Quick Cacheの導入
http://wordpress.org/plugins/quick-cache/download/
旧バージョン(111203)を使用した。
スマホとかはキャッシュさせないよう、MD5のところを以下設定に。
((preg_match("{AdsBot-Google|Android|BlackBerry 9350|BlackBerry 9360|BlackBerry 9370|BlackBerry 9380|BlackBerry 9780|BlackBerry 9790|BlackBerry 9800|BlackBerry 9810|BlackBerry 9850|BlackBerry 9860|BlackBerry 9900|BlackBerry 9930|BlackBerry9500|BlackBerry9520|BlackBerry9530|BlackBerry9550|CUPCAKE|Googlebot-Mobile|bada|dream|froyo|iPhone|iPod|incognito|s8000|webOS|webmate}", $_SERVER["HTTP_USER_AGENT"])) ? "smartphone" : ((preg_match("{DoCoMo/|J-PHONE/|J-EMULATOR/|Vodafone/|MOT(EMULATOR)?-|SoftBank/|[VS]emulator/|KDDI-|UP\.Browser/|emobile/|Huawei/|IAC/|Nokia|mixi-mobile-converter/|DDIPOCKET;|WILLCOM;|Opera Mini|Opera Mobi|PalmOS|Windows CE;|PDA; SL-|PlayStation Portable;|SONY/COM|Nitro|Nintendo}", $_SERVER["HTTP_USER_AGENT"])) ? "featurephone" : ""))
あとはそのサイトの特性によるんだけど、
GetRequests を false(always cache)
キャッシュ時間を86400で様子見てます。
1日に頻繁に更新しないのならこれでいいんじゃないですかね。
■apacheの設定
KeepAlive On MaxKeepAliveRequests 50 KeepAliveTimeout 5 <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 50 MaxClients 50 MaxRequestsPerChild 300 </IfModule>
正直あんまり意味分かってない。他サイトさんを参考にこの値に。
■画像の最適化
ウチはあんまり画像使ってないので気にしてないけど、画像をモリモリ使うサイトをWordPressでやってて効果的だったのが画像の縮小、最適化。
有名なEWWW Image Optimizerを使う。
特にスマホ側では回線が遅かったりするので画像が多い場合は表示速度けっこう変わります。
■gzip圧縮とキャッシュの設定
下記を参照にどうぞ。
https://taitan916.info/blog/?p=1399
gzipはトラフィック多いとその分メモリも食うみたいなのでその辺要注意ですね。
■結果
ここまでやってrebootかけたところ、以前は立ち上がりで700MBぐらいメモリ食っていたのが300MBぐらいまで落とせた。
キャッシュもモリモリ使っているので高速にもなってる。
関連記事
Advanced Custom FieldsでGoogleMapの使用する方法
Advanced Custom FieldsでGoogleMapを使用したかった ...
WordPressで自作テーマにウィジェットを登録する方法
WordPressで自作したテーマでウィジェットを登録しようとしたところダッシュ ...
WordPressでプラグインの作成方法
WordPressで簡単なニュースを表示させるというプラグインを作成したので、使 ...
WordPressでタグやカテゴリの複数検索
WordPressでカテゴリのアンド検索や、タグとカテゴリの同時検索を行いたかっ ...
WordPressの記事公開・更新時に何らかの処理を行う方法
WordPressで記事を公開(予約公開含む)もしくは更新した際に何らかの処理を ...