Ubuntu 10.10 Netbook Remix のインストール

先日 10/10 に Ubuntu 10.10 のリリースがありました。 🙂 Desktop 版、Server 版、Netbook 版といくつかありますが、今日は Netbook Remix を IdeaPad に入れてみました。

10.04 の Netbook Remix を入れて結構使っていましたが、10.10 版もなかなかよさそうです 😀 目玉は最近の 16:9 や 16:10 の横長液晶の縦方向を有効活用する Unity インターフェースだと思います。

netbook30

こんな感じで、アプリの最大化を基本として上部バーにウインドウ操作系と通知を統合し、横に長いことを生かして左にタスクスイッチャーが追加されています。 アプリによっては Mac のようにメニューも上部バーに統合されるようです。

左のタスクスイッチャーは Windows 7 のそれに似ていて、起動アプリのピン留めができます。 また、バックグラウンド動作で見えていないウインドウの動作があった場合は、揺れてお知らせしてくれたりしてなかなかかわいいです。

ちなみに最初、この上方向からの順番の変更の仕方が分からなかったのですが、右に引き抜いてから動かせば良いようです。 なるほど(笑)

netbook34

ちなみにタスクスイッチバーのショートカットは Super(Win)キー深押し+数字でした。

また、10.04 の Netbook Remix では標準でなかった仮想デスクトップが使えるようになっています。 このため、GPU 支援が必須になっています。 Intel 内蔵か NVIDIA なら何もしなくて問題なく動きそうです。(うちで試した限りは AMD の内蔵 GPU では動きませんでした)

 netbook31

Unity は基本的に最大化でつかわれる設計ですが、仮想画面は CTRL + TAB のグループをつくる感じで操作すると良いのだと思います。 ALT + CTRL + 矢印キーで仮想デスクトップのスイッチができます。

それから、iPhone 以降流行のアプリケーション指向。 アプリランチャーもそんな感じに。 インストール済み、未済のアプリが統合され、入っていないものを起動しようとすると、そのままネットワークインストーラが起動します。

netbook32

一方でドキュメント指向もサポートしています。

netbook33 

これらはシングルコア Atom だとちょっと重いかな、、Core 2 Duo くらいで動かすとわりと良い感じでした。 今後、チューニングされていくかもしれません。

今回この Netbook Remix は、USB HDD にインストールして動作させています。 こうしておくと、USB HDD ぬいて(大抵の)いろんな PC で自分の環境を起動できるので大変便利です。 (ちなみに最近のインターネットカフェは BIOS でブート選択画面だせないように制限かけてるところ多くて、ちょっとちんまり。。)

インストール時のパーティション設定で「高度な設定」を選択し、外付け HDD に / の ext4 ボリュームと swap 領域をつくりフォーマット指定をします。(内蔵 HDD に間違えないように!!)

Ubuntu は 10G や 20G あれば十分なので、残りは FAT32 の領域としてとっておけば、普通の外付け HDD としても機能できます。 これはインストール時は空き領域にしておいて後で Windows でフォーマットしたほうが安全かもしれません。

でもってブートローダを入れる箇所の指定がありますので、必ずそこを USB HDD やメモリにします。 あとはインストール後 BIOS で USB HDD を優先にして電源入れてあげれば Ubuntu が起動します。 たとえば内蔵 HDD の Windows あげたいときは抜いておくだけ。 楽あるね。

IMG_0096 

さて、実は今回うちの IdeaPad / ThinkPad に接続した USB CDROM –> USB HDD というインストールを行った場合に、ブートローダ書き込み時にエラーがでてインストールを完了できませんでした。 これは 10.04 のときもでていて、このときは ThinkPad のみでしたが、今回は IdeaPad でも同様のエラーが。

もしかすると、単純に USB HDD のパーティションの状態のせいかもなのですが、とりあえずデスクトップ PC の SATA の CDROM から USB HDD にインストールさせています。 で、IdeaPad につなぎなおしています。

ネットブック系で多く使われているだろう、Broadcom の NIC も今回からコンパイルすることなく追加ドライバでいれてくれるようになっています。 ハードウェア・ドライバを選択するとサーチしてくれると思われます。 ネットワークインストールなのでこのときは、有線をつないでおきます。

あとは、、Eclipse とかパッケージ外のアプリを動かしたときピン留めできないのがちょっと残念。 .desktop ファイルをつかって gconf-editor でごにょごにょするとできそうでしたがとりあえずあきらめ。 また、メニューバーが消されてしまってしんなりしたときは、環境変数で次を設定後起動すると乗っ取られないようです。

export UBUNTU_MENUPROXY=0

ThinkPad X61 にも接続して動作させていますが、1024×768 機でもなかなか便利なように思いました。 トラックポインタの設定は相変わらず手動なので /usr/share/X11/xorg.conf.d/20-thinkpad.conf に以下のファイルを追加します。

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

10.04 から場所が変わっているので要注意です。

てなわけで、持ち運び環境としても、横長液晶用の UI としてもなかなか便利な Ubuntu 10.10 Netbook Remix でした。 気に入って使っています。 🙂

さくらの VPS で撃沈 (WordPress + HipHop 編)

高速化、最適化へのあくなき挑戦は続く。

今回は、PHP のアプリケーションを C++ に変換してネイティブ動作させてしまうという、にいさんに教えてもらった HipHop for PHP で WordPress を動作させることに挑戦です。

きまったリソースの中で最大限を求めるロマンは、コンピュータの世界もバイクの世界も同じに違いない、きゅるるるるる…、ぼぼん! では、いってみましょう。 🙂

…結論から言いますと、WordPress を動かすことは失敗しています。。 にいさんに夢を託します。(笑)

まずは、HipHop for PHP から。

Home – hiphop-php – GitHub

HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance.

最近では JavaVM や .NET の CLI ではランタイム最適化でネイティブのスピードを超えてしまうこともあるらしいですが、PHP のインタプリタにそれを望むのは厳しいというわけで、C++ にしてネイティブにしてしまえ! というプロダクトです。

Facebook で使われているそうですが、すごいっすね。

sakura-hiphop

スクリーンショットに意味はない。。

さてちょうどいいことに、さくら VPS のデフォルト OS である CentOS 5 AMD64 用の rpm が Hiphot サイトで提供されています。

Installing or Building HipHop-PHP via RPM on CentOS 5 – hiphop-php – GitHub

HipHop has been developed on CentOS and Fedora, but only based on source code and some patches. You may found this way is hard.
So, I create some patched RPM’s for easy HipHop installation on CentOS 5

At the moment, RPM’s only for 64 bits systems. I work on 32bits in that moment, and you can get RPMS as soon as possible.

じゃ、じゃ、じゃー、さくらの VPS で動かしてスピードの向こう側をみてやろうじゃないか、というのがこの企画。

サイトの手順でいけるかなと思ったのですが、依存関係でなかなか手強い。。 おそらく以下の手順で依存は解消できると思われます。(ただし、後述するとおりセグるのでだめなのかもです)

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
yum install cvsps
 
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
yum install --enablerepo=remi mysql-server mysql-libs
yum install --enablerepo=remi mysql-devel-5.1.50-2.el5.remi
 
/etc/init.d/mysqld start
 
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm 
yum install --enablerepo=rpmforge perl-Error.noarch
 
wget http://www.n0c.org/RPM/centos/5/x86_64/tla-1.3.5-7.x86_64.rpm
rpm -ivh tla-1.3.5-7.x86_64.rpm 
 
yum install tk gd gd-devel mcrypt libmcrypt tidy mhash freetds net-snmp httpd-mmn libtool-ltdl
yum remove subversion
yum install libc-client subversion-perl
yum install pcre pcre-devel libidn-devel expat-devel libmcrypt-devel libcap-devel
yum install binutils binutils-devel cmake gcc
 
yum update
 
yum remove libxml2-2.6.26-2.1.2.8.i386
yum remove curl-7.15.5-9.el5.i386

どーしても rpm のありかが分からなくて、なぞのリポジトリ(tla)も一部つかっていますのでご注意ください。 その他は、手順にあるリポジトリを利用しています。

でもって、提供されている .rpm をインストール。 ここで使った .rpm は以下の通りです。 sourceforge.net にあったもの全部です。

#!/bin/sh
 
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/tbb-doc-2.2-1.20090809.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/tbb-devel-2.2-1.20090809.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/tbb-2.2-1.20090809.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-xmlrpc-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-xml-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-tidy-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-soap-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-snmp-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-pgsql-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-pdo-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-odbc-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-ncurses-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-mysql-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-mssql-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-mhash-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-mcrypt-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-mbstring-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-imap-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-gd-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-devel-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-dba-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-common-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-cli-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-bcmath-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/php52-5.2.12-1.ius.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/perl-Git-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/oniguruma-devel-5.9.2-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/oniguruma-5.9.2-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/m4-1.4.13-4.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libxml2-static-2.7.6-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libxml2-python-2.7.6-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libxml2-devel-2.7.6-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libxml2-2.7.6-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libicu-doc-4.2.1-6.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libicu-devel-4.2.1-6.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libicu-4.2.1-6.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libevent-devel-1.4.13-1hiphop.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/libevent-1.4.13-1hiphop.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/icu-4.2.1-6.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/hiphop-php-1.0-2.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/gnupg-1.4.10-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-svn-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/gitk-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-gui-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-email-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-cvs-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-arch-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-all-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/git-1.7.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/flex-2.5.35-7.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/curl-devel-7.20.0-1hiphop.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/curl-7.20.0-1hiphop.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/boost-doc-1.37.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/boost-devel-1.37.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/boost-1.37.0-1.x86_64.rpm/download
wget http://sourceforge.net/projects/hphp/files/CentOS%205%2064bit/RPM/autoconf-2.63-3.noarch.rpm/download

でもって、以下で HipHop for PHP のインストール、環境設定はOKだと思います。

# rpm -ivh *.rpm
# cd /usr/lib64/hphp
# export HPHP_HOME=`pwd`
# export HPHP_LIB=`pwd`/bin

あとは、WordPress のディレクトリに cd して変換、コンパイルをかければ…。

# cd /opt/sakura.maple4ever.net/
# find . -name "*.php" > files.list 
# $HPHP_HOME/src/hphp/hphp --input-list=files.list -k 1 --log=3 --force=1 --cluster-count=50

…。

parsing inputs took 0'00" (157 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (75 ms) wall time
inferring types...
inferring types took 0'00" (142 ms) wall time
post-optimizing...
post-optimizing took 0'00" (15 ms) wall time
creating CPP files...
Core dumped: Segmentation fault
セグメンテーション違反です

[tegaki]マイガー![/tegaki]

というわけで、コンパイルに入る前にセグって落ちてしまうようです。。

ちなみにうまく C++ に変換されたソースは以下の感じです。

#include <php/wp-content/themes/twentyten/functions.h>
#include <php/wp-content/themes/twentyten/single.h>
#include <cpp/ext/ext.h>
 
namespace HPHP {
 
Variant pm_php$wp_content$themes$twentyten$single_php(bool incOnce /* = false */, LVariableTable* variables /* = NULL */) {
 
  LINE(10,invoke_failed("get_header", Array(), 0x26068646792ABCAELL));
  echo("\n\t\t<div id=\"container\">\n\t\t\t<div id=\"content\" role=\"main\">\n\n");
 
  if (toBoolean(LINE(15,invoke_failed("have_posts", Array(), 0x243E9CC8A30DB2F4LL)))) LOOP_COUNTER(1);
  {
    while (toBoolean(invoke_failed("have_posts", Array(), 0x243E9CC8A30DB2F4LL))) {
      LOOP_COUNTER_CHECK(1);
      {
        invoke_failed("the_post", Array(), 0x41F4B03CC3C890CFLL);
        echo("\n\t\t\t\t<div id=\"nav-above\" class=\"navigation\">\n\t\t\t\t\t<div class=\"nav-previous\">");

ここでは分かりやすいようにかなり抜粋していますが、PHP が C++ に変換されているのがワカリマス。 これは twentytn の single.php 部分ですがなんてことを、って感じですね(笑)

ちなみに、WordPress 以外はというと bbPress も同様に変換がおちました。 ごくごく簡単な、test.php ひとつだけだとうまくサーバ起動まで動作しました。

ランタイムでおちるのなら依存のライブラリかなとかも思うのですが、この段階で動くプロダクトが何かがよく分からなくて手詰まりとなりました。 最初さくら VPS 上でやっていたのでメモリ不足かなとおもって、ローカルの仮想マシンの CentOS 5.5 でもやってみたのですが同様の結果に。

もうちょっと時間があれば、file.list を増減させたりしてみたかったのですが、なんせ ここまでくるのに 12時間近く、、、わたしまけましたわ(笑)

まぁ小中学生のときはコンピュータうまく動かないことにハマって数ヶ月一人もんもんするくらいへーきだったので、根性なくなったな自分、などと思いつつ今日はここまでにしておきます。 😀

さくらの VPS で遊ぶ (WordPress 編)

昨日に引き続きまして、さくらさんの VPS。 今度は我らが WordPress のインストールに挑戦してみたいと思います。

WordPress なら VPS じゃなくて普通のレンサバでいいじゃないか、という声も聞こえてきそうですが、VPS の場合は レンサバでは自分で自由にいれることができない PHP アクセラレータとか memcached とか、MySQL のクエリーキャッシュとかをいじれるのがポイントになります。

まぁ面白そうだというのが一番だったりもしますです。 🙂

てなわけで さくら VPS は初期状態、本当にまっさらな感じなので、まずは Apache と PHP と MySQL のインストールから。

# yum update
# yum install httpd php php-mbstring php-mysql php-gd mysql-server

まぁこんな感じで…(SSH のログとばしてしまったので、間違っていたらすいません。。)

で、httpd.conf を設定します。 ここではこんな感じで。

   1: # cat /etc/httpd/conf/httpd.conf 
   2: <VirtualHost sakura.maple4ever.net:80>
   3:    ServerName sakura.maple4ever.net
   4:    DocumentRoot /home/apache/sakura.maple4ever.net/public_html
   5:    <Directory /home/apache/sakura.maple4ever.net/public_html>
   6:       AllowOverride all
   7:       Options -MultiViews
   8:    </Directory>
   9: </VirtualHost>

ディレクトリの権限などは chown –R apache:apache しておきます。 また、wp-config.php と .htaccess をつくらせるために public_html に書き込み権限を。 あとで落としてください。 (試験の適当設定なので本気でやるときはユーザを作成するなど注意深くやってください)

でもって、httpd と mysqld を起動して mysql にデータベースを作成。 ここではやってませんが、mysql のパスワードもちゃんと設定のこと。

# /etc/init.d/httpd start
# /etc/init.d/mysqld start
# mysql -u root -p
パスワードは初期状態なし
\ create database 'sakura' default character set utf8 collate utf8_general_ci;

あとはいつも通り、WordPress を public_html にいれて、URL にアクセスでございます。、 🙂

   1: # cd /home/apache/sakura.maple4ever.net/public_html
   2: # wget http://ja.wordpress.org/wordpress-3.0.1-ja.tar.gz
   3: # tar zxvf wordpress-3.0.1-ja.tar.gz
   4: # cp -R wordpress/* .
   5: # rm -Rf wordpress
   6: # cd ..
   7: # chown -R apache:apache public_html
   8: # chmod +w public_html

ということで、無事起動します。 データもプラグインも入っていないのでなかなかさくさく動きます。

いけるか!?。。

これだと実運用の動きが分からないので、hiromasa.another (ここ)のデータをインポートしてみました。 画像の http セッションも確認したかったので、画像も移して URL を置換しています。

いけ~。

[tegaki]きゅるるるるるる、ぼぼん![/tegaki]

ひろまさ「ずがーん、のこりメモリ 40MByte。。。。。」

ひろまさ「ちょっぱ~を寝かせてきます。」

Masayan「…」

失意のひろまさくん。

ちなみにこのブログで一番重い処理は、kougabu のサムネイル作成だったりします。 複数画像を非同期で縮小かけにいくので結構メモリをくいます。(そのため kougabu ではプログラムで一定数以上同時につくらないように動作を制限しています。 なかなかサムネイルできないときあるのはこの機能のせいです)

はたして残りメモリ 40M じゃ、PHP アクセラレータも memcached もいけんわなぁと思いつつ、せっかくだからと言うことでどうなるのか APC のインストールをしてみる。

PHP: 導入 – Manual

Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。

# yum install php-pear php-devel 
# pecl install APC
no と答えた
# vi /etc/php.ini
extension=apc.so # 入れる
# /etc/init.d/httpd restart

うまくはいると phpinfo() にこんなんでます。

sakura21 

そして、WordPress を表示して、いろいろアタックしてみたあとに free。

ひろまさ「なんと、のこりメモリ 200M キター!」

ぼのを「…」

どうやら APC でバイトコードをつくるとメモリ使用量がずいぶん減るようです。(たぶん) しかも速度が 1.5倍くらい速くなりました。

Powered by WordPress. Built on the Thematic Theme Framework. (75 queries.1.902seconds.)

最初は 3秒以上くらいかかっていたのでだいぶいい感じです。

そして調子に乗って memcached も導入して、WordPress コアのクエリなどをキャッシュしてみます。

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# yum install memcached php-pecl-memcache
# /etc/init.d/memcached start
# cd /home/apache/sakura.maple4ever.net/public_html/wp-content
# wget http://plugins.trac.wordpress.org/export/285287/memcached/trunk/object-cache.php
# chown apache:apache object-cache.php

これで、PHP から memcached がみえて WordPress が使ってくれるハズです。

sakura20 

で、キャッシュを効かせる感じで、ブラウザからぽちぽちあくせす。。 🙂

Powered by WordPress. Built on the Thematic Theme Framework. (28 queries.1.415seconds.)

1.9 秒かかっていたのが、1.4 秒になりました! (昔やったときはクエリ 4 くらいまで落ちたのですが、テーマとかプラグインなど対応していない SQL のせいかもです。 チューニングの余地あり)

で、しばらく触った後のメモリを観測。

# free
             total       used       free     shared    buffers     cached
Mem:        510532     504212       6320          0       3372     111752
-/+ buffers/cache:     389088     121444
Swap:      2048276      28984    2019292
# memcached-tool 127.0.0.1 display
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  1      96B       478s       1       3      no        0        0    0
  2     120B       478s       1       3      no        0        0    0
  3     152B      1068s       1       4      no        0        0    0
  4     192B       963s       1       3      no        0        0    0
  5     240B      1062s       1       3      no        0        0    0
  7     384B       574s       1      34      no        0        0    0
  8     480B       957s       1      62      no        0        0    0
  9     600B       957s       1     145      no        0        0    0
 10     752B       957s       1      32      no        0        0    0
 11     944B      1640s       1       5      no        0        0    0
 13     1.4K      1640s       1       3      no        0        0    0
 14     1.8K      1640s       1       2      no        0        0    0
 16     2.8K      1654s       1       3      no        0        0    0
 17     3.5K       958s       1       4      no        0        0    0
 18     4.4K      1655s       1       4      no        0        0    0
 19     5.5K       958s       1      10      no        0        0    0
 20     6.9K      1644s       1       4      no        0        0    0
 21     8.7K      1655s       1       2      no        0        0    0
 22    10.8K       958s       1       5      no        0        0    0
 23    13.6K       958s       1       4      no        0        0    0
 24    16.9K       958s       1       4      no        0        0    0
 25    21.2K       958s       1       6      no        0        0    0
 26    26.5K         0s       1       0      no        0        0    0

のこり 121M キター。 これならいける。 いける。

さすがに VPS なので CPU 的な部分はやはり遅いようで、ここのコアサバの表示速度には及びませんが(ちなみに最近ひどく調子がいい。 0.3秒くらいでレンダリング終了します)、必ず一定の速度で動けて、その他工夫次第でチューニングもできるので遊ぶには面白いのではないかと思います。

ちなみに今回動かしたサイトは、こんなかんじです。 (そのうち消えます)

ひろましゃ.さくらVPS :o)

というわけで、もうすこしいろいろな角度から検証は必要そうですが、APC いれるとなかなかいけそうな気がします。 もちろん使い方、サイトの規模にもよると思いますので、やられる方は2週間の試用期間で確認するといいと思います。 🙂

以上、デプロイ田中でした。

DVC00012

あ、関係ない。(笑)