勉強したことのメモ

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

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

   

メモリ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, サーバー

  関連記事

FTP接続のIP制限を解除する(hosts.allow)

とあるサーバーにて「FTP接続のIP制限を解除してほしい」と言われた。自身が設定 ...

VPSをもう1台導入した際のメモ

DTIのVPSを導入した。 目的としてはMySQLのレプリケーションとか、 複数 ...

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

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

WordPressでSNSボタンが表示されない

WordPressでWordPress WP Social Bookmarkin ...

海外IPの制限

海外IPの制限を行ったので手順のメモ。 まず「サーバー立てたらすぐ攻撃が来る」と ...

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

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

WordPressで店舗用サイトを作るときに使えそうなテーマ

WordPressで店舗用のサイトを作る際に使えるかも、というテーマがいくつかあ ...

サーバ内でバージョン確認方法のまとめ

OSやApacheのバージョンを確認する際にいつもググっていたので、調べやすいよ ...

contact form7で送信数を測定

contact form7でフォーム送信が完了した時点で計測されるようにトラッキ ...

yumで既にインストールされているか確認する

新しくインストールする前に既に入っているか どうか確認したかった。 yum li ...