VPS がやっぱり重い
ということで、できるだけチューニングする
思いつくことは下記のようなこと
- カーネルコンパイル
- マウントオプション変更
- バイナリ最適化
まず、カーネルのいらない機能を削除し、最適化をする
次にマウントオプションの変更
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ですね。
高速化されるといいなぁ(^^)
ピンバック:Tweets that mention さくらインターネットのVPSを軽くする | うーたまっくす -- Topsy.com