勉強したことのメモ

webプログラマが勉強したことのメモ。

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

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

 - WordPress, VPS, サーバー

  関連記事

GMOクラウドVPSをレンタルして気付いたことのメモ  

GMOクラウドVPSをレンタルして気付いたことのメモ。 レンタルしたのはマイクロ ...

MySQL/Apacheの再起動

忘れないようにメモ。 ■MySQL service mysqld restart ...

コマンドでMySQLに郵便番号データを入れる

練習としてコマンドから郵便番号データを入れた際のメモ。 --------- 1: ...

WordPressにてPHPのAPCuを使用して高速化を図る方法

先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...

WordPressログイン時のヘッダーメニューを非表示

WordPressログイン時にフロント側のページを見るとヘッダーにメニューが表示 ...

Class ‘DOMDocument’ not foundエラーの対処

PHPでphpQueryというライブラリを利用しようとすると「Fatal err ...

WordPressで複数のカテゴリーを取得する

WordPressで1つの記事に対して複数カテゴリを設定していた場合、テーマによ ...

サーバーが落ちた時にメール送信してくれるUptime Robotが便利

自サイトが落ちた時にメールを送信してくれるUptime Robotが超便利だった ...

glibcライブラリの脆弱性とアップデート方法

レンタルしているサーバのアナウンスで「glibcライブラリの脆弱性」云々というの ...

CentOSでサーバ時間のずれを調整する

他サーバとのやり取りをするにあたり、サーバごとに微妙に時間が異なっているというこ ...