勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

WordPressでメモリを節約しつつ高速化する設定方法

   2014/09/08  WordPress VPS サーバー

メモリ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ぐらいまで落とせた。

キャッシュもモリモリ使っているので高速にもなってる。

 - WordPress VPS サーバー

  関連記事

Advanced Custom FieldsでGoogleMapの使用する方法

Advanced Custom FieldsでGoogleMapを使用したかった ...

WordPressで自作テーマにウィジェットを登録する方法

WordPressで自作したテーマでウィジェットを登録しようとしたところダッシュ ...

WordPressでプラグインの作成方法

WordPressで簡単なニュースを表示させるというプラグインを作成したので、使 ...

WordPressでタグやカテゴリの複数検索

WordPressでカテゴリのアンド検索や、タグとカテゴリの同時検索を行いたかっ ...

WordPressの記事公開・更新時に何らかの処理を行う方法

WordPressで記事を公開(予約公開含む)もしくは更新した際に何らかの処理を ...