広告

Nginx+MariaDB+HHVM+Ubuntu15.04

基本レシピ:Nginx + MariaDB + HHVMをUbuntu 15.04とともに。

はじめに

 「速そうで、速くない、ちょっとだけ速いWordPress」を作るための基本レシピを紹介します。

レシピ: Microsoft AzureにNginx + MariaDB + HHVMをUbuntu 15.04とともに

インストールと設定

Nginxのインストール

$ sudo apt-get -y install nginx
...
$ sudo systemctl start nginx
$ sudo systemctl enable nginx

ブラウザを使って表示をチェックします。

MariaDBのインストールと基本設定

$ sudo apt-get -y install mariadb-client mariadb-server
...
$ sudo systemctl start mysql
$ sudo mysql_secure_installation
Enter current password for root (enter for none): リターン

Set root password? [Y/n] Y
パスワードを入力します(2回)

Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

$ sudo mysql -u root -p
先ほど設定したパスワード

mysql> create database db_wordpress default character set utf8;
mysql> grant all privileges on db_wordpress.* to 'wordpress'@'localhost' identified by 'パスワード';
mysql> flush privileges;
mysql> quit
$

HHVMのインストールと基本設定

$ wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
$ echo deb http://dl.hhvm.com/ubuntu vivid main | sudo tee /etc/apt/sourceslist.d/hhvm.list
$ sudo apt-get update
$ sudo apt-get -y install hhvm
$ sudo /usr/share/hhvm/install_fastcgi.sh
$ sudo update-rc.d hhvm defaults
$ sudo /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
$ sudo systemctl start hhvm
$ sudo <<EOF >/var/www/html
<?php
phpinfo();
?>
EOF
$ php /var/www/html/info.php

WordPressのインストールと基本設定

$ cd /var/www
$ sudo wget wordpress.org/latest.tar.gz
$ sudo tar xvfz latest.tar.gz
$ cd wordpress
$ sudo mv wp-config.sample.php wp-config.php
$ sudo sed -i -e 's/database_name_here/wordpress/' -e 's/username_here/wordpress' -e 's/password_here/ wp-config.php
$ cd /etc/nginx/sites-available
$ sudo sed -i -e 's/index index.html/index index.php index.html/' -e 's#/var/www/html#/var/www/wordpress#' /etc/nginx/sites-available/default
$ sudo systemctl restart nginx

表示速度の確認

 サイトの表示速度のチェックを行います。

GTmetrixなどの表示速度を調査してくれるサービスがありますが、カナダにサーバがありますからブラウザ上で動作させることができる表示速度ブックマークレットを使ってテストします。

表示速度テスト(速度表示ブックマークレット)

まずは、Nginxをインストールしただけの状態でチェックすると・・・

Nginx単体テスト

Microsoft Azure上のサーバで同様の値を出すためにキャッシュを組み付けたサーバを使うと、70msです。

内訳の「ページデータの準備」に35msかかっていますので、クラウドサーバの処理の遅さが現れています。

表示テスト: Stinger5テーマに変更

Nginx+HHVM+MariaDB+WordPress Stingerテーマ

テーマを入れ替えると重たくなります。

パート毎の時間をみると、ブラウザ処理(画像読み込みやスクリプト実行)に1.17秒かかっていますから表示時間のほとんどを占めています。

W3 Total Cacheプラグイン + fastcgi_cache

W3 Total Cahceプラグインをインストールして、有効に動作させるためにfastcgi_cacheを設定すると、1秒以下まで表示速度が速くなります。

GTmetrixでテストすると

このサイトをGTmetrixでテストすると、4秒〜5秒台です。

むすび

Nginx+MariaDB+HHVMを使ったUbuntu 15.04サーバをMicrosoft Azure上に設置しました。

テーマには、Stinger5を使っていますのでシンプルなテーマとくらべるとデータ量が多いため表示速度は遅くなります。

自己ブラウザテストでは、1秒程度で表示していますので国内アクセスはそこそこ速度が出るのではないかとおもうのですが・・・

このサイトを、GTmetrixで測定すると4秒〜5秒ですのでもう少し改善の余地はあるでしょう、地理的に遠い場所からのアクセス(現実的にはありませんが)を想定して、Azure CDNを実験してみようと思います。

基本レシピ:Nginx + MariaDB + HHVMをUbuntu 15.04とともに。 はじめに レシピ: Microsoft AzureにNginx + MariaDB + HHVMをUbuntu 15.04とともに インストールと設定 Nginxのイ...
記事を読む »


 表示速度が速いことは良いことかどうかちょっと疑問に思いまして、ホントに1秒切りが難しいかどうか実験してみました。

Google検索で見つかる「爆速」や「光速」などのブログ記事では、いろいろなプラグインを組み合わせると1秒切りができるような記事がちらほらあるのですが、テスト環境のサーバ構成が記載されていなかったり、サーバの設置場所が記載されていなかったりと測定環境データがちょっと微妙な記事が多いです。

その記事は、Chromeのデベロッパーツールで見ても5秒以上かかっていたりして、「この記事はホント???」と思うことがしばしばあります。

そのため自己データを取得する目的で実験を行うこととしました。

計測に利用するサイト

 今回、表示速度を計測するサイトはGTmetrixを利用して表示速度を計測することとしています。

サンプルで動作させているWordPressは、3.4秒@1.08MBでした。

テーマは、アフィリエイターの利用が多いと思われる「Affinger」を使いアドセンス広告も表示させるようにしています。

サーバは、Google Compute Engineのn1-standardをAsia Pasificで動作させた状態で計測しています。

このところ、Twitterの表示が安定していませんので表示速度にばらつきがあり時々5秒程度になることがあります。

Google Cloud Platformを使いテスト

今回は、表示速度を1秒を切ることが目的ですので、GTmetrixがあるカナダにより近いアメリカ西海岸にサーバ・インスタンスを設置してみます。

構成概要

 Google Compute Enginに仮想マシン・インスタンスを生成して実験します。

速度計測が目的ですので、あまり複雑なことはせずに、NginxとPHP-FPMを使ってどれくらいの表示速度が出るかをチェックします。
 

サーバ

  • n1-standard1
    • vCPU: 1
    • Mem: 3.75GB
    • GECU: 2.75
    • Disk Type: SSD

ミドルウェア

  • ミドルウェア構成
    • OS:CentOS 7.1
    • Webサーバ:Nginx-1.9.4
    • CGI:php-fpm 5.4
    • DB:mariadb

GTmetrix表示速度

 キャッシュ・プラグインやfastcgi_cacheなどは利用していません。 シンプルなサーバ構成で表示速度を測定します。

1回目:0.9秒


0.9秒

2回目:0.8秒


0.8秒

3回目:0.8秒


0.8秒

表示速度を考える

 このサーバを使って、レスポンシブで見た目に綺麗なテーマを用いると表示速度はぐっと遅くなります。

広告を表示させるようにするとさらに遅くなりますし、プラグインによっても表示速度は変化します。

ブログの表示速度が「何秒なら良いか」という疑問は、見る人やデバイスなどによって異なります。

体感的な速度を出すために、いくつかブログを見て回りながら調べてみました。 著名なブログサイトでも3秒切れていませんでした。

ということは、ブログの表示速度としては3秒〜5秒@2MB程度であれば見る側としてはそこそこ快適にブログを見ることはできるのではないかと思います。

むすび

今回は、Google Compute Engineを使って、WordPressの表示速度がどれくらい高速にできるのかをチェックしてみました。

シンプルなテーマを使った構成では、1秒を切る表示速度を達成することは決して難しいことではないと思います。

JQueryを使ったテーマや作り込んだテーマを利用すると、表示データが大きくなるため、その分表示速度は遅くなります。

現時点では3秒〜5秒程度の表示速度であれば及第点ではないかと思います。

 表示速度が速いことは良いことかどうかちょっと疑問に思いまして、ホントに1秒切りが難しいかどうか実験してみました。 計測に利用するサイト Google Cloud Platformを使いテスト 構成概要 サーバ ミドルウェア GTmetrix表示速...
記事を読む »

シルバーウィーク(秋休み)になりました。

Google Cloud PlatformのCompute EngineでWordPressを動かしていますが、基本的な性能をチェックし直してみました。

Nginx-1.9.4をfastcgi_cacheで設定して、php-fpm 5.5(php-fpmは5.4より5.5の方が処理が速いので)にトラディショナルなWP SuperCacheプラグインを組んだわっかりやすい構成です。

W3 Total CacheやCloudFlareは使っていません。

巷には、「1秒切りWordPress」という記事を見かけるのですが実際にその記事にアクセスすると5秒などだったりますからねぇ。

構成概要

  • OS: CentOS-7.1
  • Webサーバ: Nginx-1.9.4
  • CGI: php-fpm 5.5

ベンチマーク

GTmeter

 今、今の状態でトップページをGTmeterかけると5.3秒@1.15MBです。(4.2s〜6.8sとバラツキは多少あります)

表示する記事が増えるともう少し遅くなると思いますが、「1秒WordPress」の記事ページと変わらない速度ですから悪くない値ではないでしょうか。

本質的には、Google Cloud Platform(Compute Engine)のパフォーマンスが良いということがポイントだと思います。

apache bench

サーバ単体でabコマンドを使ってベンチマーク・データは:

Server Software: nginx/1.9.4
Server Hostname: 130.211.247.200
Server Port: 80
Document Path:
Document Length: 9298 bytes
Concurrency Level: 100
Time taken for tests:  6.359 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 9555000 bytes
HTML transferred:  9298000 bytes
Requests per second: 157.26 [#/sec] (mean)
Time per request:  635.874 [ms] (mean)
Time per request:    6.359 [ms] (mean, across all concurrent requests)
Transfer rate:  1467.44 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median  max
Connect:     129 305  57.5 320  708
Processing:  110 230 191.8 188 2027
Waiting:      57  65  19.3  63  613
Total:       241 535 207.3 514 2330
Percentage of the requests served within a certain time (ms)

毎秒あたりのリクエスト数が157.26になりましたので、アクセス数の多いブロガーサイトでも使えそうな値ではないでしょうか。

ロードバランサーを介してWebサーバーを2〜3台用意(当然オートスケールは使って)すれば300アクセス/秒くらいは捌けると思います。

シルバーウィーク(秋休み)になりました。 Google Cloud PlatformのCompute EngineでWordPressを動かしていますが、基本的な性能をチェックし直してみました。 Nginx-1.9.4をfastcgi_cacheで設定して、php-f...
記事を読む »

ただいま、GCE(Google Compute Engine)でテストしています。

バックエンドはWebサーバを3台

abコマンドによると、単体は130リクエスト/秒くらいのパフォーマンスですのでがっつりアクセスがあると落ちます。。。

紐付けが多いので、ページレスポンスは4秒〜5秒といったところ。


ただいま、GCE(Google Compute Engine)でテストしています。 バックエンドはWebサーバを3台 abコマンドによると、単体は130リクエスト/秒くらいのパフォーマンスですのでがっつりアクセスがあると落ちます。。。 紐付けが多いので、ページレ...
記事を読む »


「1秒切りWordPress」や「爆速WordPress」でちらほら出てくるCloudFlareなんですが、やってみようと思ったんですが。

DNSを変えろって言われても・・・


CloudFlareをテストしてみようと、登録を進めていったところ「DNSの設定を変えて」と出てきて「へ?」

メール関係はOffice365を使っていて、ブログはbloggerでリダイレクトにS3を使っていますから、今更変えろと言われましても無理ですやん。

そうそう気安くDNSそのものを変える分けにはいかないんだよなぁ

ということで断念


「1秒切りWordPress」や「爆速WordPress」でちらほら出てくるCloudFlareなんですが、やってみようと思ったんですが。 DNSを変えろって言われても・・・ CloudFlareをテストしてみようと、登録を進めていったところ「DNSの設定を変...
記事を読む »


WordPress on Google Cloud Plarformでオートスケールを行っているのですが、WP2Cloudを使おうと思ってClouSEをダウンロードしようとしたらエラーが出ていてダウンロードできません。

ClouSEが・・・エラー


ClouSEダウンロードできず

gsutil rsyncで同期するからいいや!

WordPress on Google Cloud Plarformでオートスケールを行っているのですが、WP2Cloudを使おうと思ってClouSEをダウンロードしようとしたらエラーが出ていてダウンロードできません。 ClouSEが・・・エラー Clou...
記事を読む »

 Google App Engin(GAE)にWordPressを作ってみました。 autoscaleを組まなくてもスケーリングしてくれるというので手軽だと思うんです。

開発環境はUbuntu 15.04

GAEの開発環境はUbuntu 15.04に構築しました(SDKとmysqlとphpを入れるだけ)。

GAE用のWordPressをgit cloneして、WordPress本体は日本語版へ差し替え、プラグインを移動した後に、テーマはAffinger、おススメプラグインを入れようと。。。

dev_appserve.pyで起動したら、テーマインストールできないんですが・・・なんで?

プラグインのダウンロードもエラーが出ちゃいますんで、wgetで落としてきました。

Nginxで動作させるとちゃんと出るので、ダウンロードさせるには何かが足りないのかもしれません。。。

で、deployするとうまく動いてくれるんですよ。

動作テストできないじゃん!

 Google App Engin(GAE)にWordPressを作ってみました。 autoscaleを組まなくてもスケーリングしてくれるというので手軽だと思うんです。 開発環境はUbuntu 15.04 GAEの開発環境はUbuntu 15.04に構築しました(S...
記事を読む »

WordPress使い方


サーバ


インストール


テンプレート


プラグイン


まとめ



WordPress使い方 サーバ インストール テンプレート プラグイン まとめ
記事を読む »