さくらインターネットのVPSを軽くする

Pocket

VPS がやっぱり重い
ということで、できるだけチューニングする
思いつくことは下記のようなこと

  1. カーネルコンパイル
  2. マウントオプション変更
  3. バイナリ最適化

まず、カーネルのいらない機能を削除し、最適化をする

次にマウントオプションの変更
atimeを更新しないように fstab を変更する
これで少しディスク読み込みが軽くなるかも!?

/dev/sda3    /    ext4    defaults,noatime    1 1

さらにコンパイルオプションの変更する
ソースからコンパイルしているものは少ないので、rpm をリビルドして対応する
そのために、/usr/lib/rpm/momonga/rpmrc を変更する

$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 15
model name    : Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
stepping    : 11
cpu MHz        : 2660.126
cache size    : 4096 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm constant_tsc rep_good pni ssse3 hypervisor lahf_lm
bogomips    : 5320.25
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 15
model name    : Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
stepping    : 11
cpu MHz        : 2660.126
cache size    : 4096 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm constant_tsc rep_good pni ssse3 hypervisor lahf_lm
bogomips    : 5320.25
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

CPU は Core2Duo ですが、一応 gcc のオプションで確認してみます

$ gcc -E -v -march=native -
Using built-in specs.
Target: x86_64-momonga-linux
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://developer.momonga-linux.org/kagemai/ --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-momonga-linux
スレッドモデル: posix
gcc version 4.4.4 20100630 (Momonga Linux 7 4.4.4-3m.mo7) (GCC)
COLLECT_GCC_OPTIONS='-E' '-v'
/usr/libexec/gcc/x86_64-momonga-linux/4.4.4/cc1 -E -quiet -v - -march=core2 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=core2
存在しないディレクトリ "/usr/lib/gcc/x86_64-momonga-linux/4.4.4/include-fixed" を無視します
存在しないディレクトリ "/usr/lib/gcc/x86_64-momonga-linux/4.4.4/../../../../x86_64-momonga-linux/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/local/include
/usr/lib/gcc/x86_64-momonga-linux/4.4.4/include
/usr/include
探索リストの終わり

-march=native オプションを付ければ core2 オプションに変換されていることがわかります。

CPUのgccオプションがわかりました。
今後のことを考えずに -march=core2 で rpm のマクロを書き換えます。
Momonga Linux の場合、rpmrc は下記にあります。

/usr/lib/rpm/momonga/rpmrc

rpmrc の x86_64 の gcc オプションの -mtune=generic を -march=core2 に変更します。

#optflags: x86_64       -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC
optflags: x86_64        -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -march=core2  -fPIC

書き換えて、rpm をリビルドしなおすと Core2Duo用のrpmパッケージが出来上がります。
あとは、リビルドした –force オプション付きで rpm をアップデートすればOKですね。

高速化されるといいなぁ(^^)

1件のコメント

  1. ピンバック:Tweets that mention さくらインターネットのVPSを軽くする | うーたまっくす -- Topsy.com

コメントを残す