東京電力(13時15分) 4298万kW / 5180万kW (83.0%) 東北電力(13時20分) 1195万kW / 1373万kW (87.0%)
中部電力(13時12分) 2033万kW / 2424万kW (83.9%) 関西電力(13時03分) 2097万kW / 2534万kW (82.8%)
九州電力(13時20分) 1057万kW / 1503万kW (70.3%)

さくらのVPS FreeBSDチューニング

元々からのFAQ

net.inet.tcp.tso=0

速度が出なくて調査依頼してもらったこと

net.inet.tcp.inflight.enable=0

注:このオプションは、FreeBSD 9 にはありません。

その他の設定

/etc/sysctl.conf

net.inet.tcp.tso=0
net.inet.tcp.inflight.enable=0

net.inet.tcp.inflight.min=24576

kern.ipc.maxsockbuf=16777216

net.inet.tcp.sendbuf_max=20480000
net.inet.tcp.recvbuf_max=1048576

net.inet.tcp.sendbuf_inc=16384
net.inet.tcp.recvbuf_inc=32768

kern.ipc.nmbjumbop=65536
kern.ipc.nmbjumbo9=32768
kern.ipc.nmbjumbo16=16384

# 追記:RWINとかも上げてみる。
net.inet.tcp.sendspace=131072
net.inet.tcp.recvspace=131072

/etc/loader.conf

accf_data_load="YES"
accf_http_load="YES"

その他カーネルコンパイル

//IPV6を抜く → 導入によりIPV6を有効化しなおした。
COMPAT関連、32bit コンパチブルを抜く
SMPは外さない
ata atadisk em 以外全部抜く

さくらのVPS を最大15%の高速化する方法

それは、ちょっと工夫して再コンパイルするだけです。

え? FreeBSD 専用です。

あ、日記にもかいたけど、さくらのVPSのページにも書いておきます。

/etc/make.conf

注:さくらのVPS IntelCPU専用です。
CPUTYPE?=core2
CFLAGS=\
        -O2 -pipe -march=${CPUTYPE} -mtune=${CPUTYPE} \
        -funroll-loops -fno-strict-aliasing
COPTFLAGS=\
        -O2 -pipe -march=${CPUTYPE} -mtune=${CPUTYPE} -msse -msse2 -msse3 \
        -fomit-frame-pointer  -funroll-loops -fno-strict-aliasing
CXXFLAGS+= -fconserve-space

MASTER_SITE_OVERRIDE?=ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

(一番下の行は、おまけ)

これで、

cd /usr/src
(csup releng-supfile)
(ee /usr/src/sys/i386/conf/SAKURA or ee /usr/src/sys/amd64/conf/SAKURA)
make clean or rm -rf /usr/obj
make buildworld
make buildkernel KERNCONF=SAKURA
make installkernel KERNCONF=SAKURA
make installworld
#mergemaster -UPi (必要に応じて)

するだけです。

パッケージ類(ports)も全てリビルドして下さい。

  • 一例(これは古い方法です)
/usr/ports/net/cvsup-without-gui を入れる
/usr/ports/ports-mgmt/portupgrade を入れる
cd /usr/src
(cvsup releng-supfile)
(ee /usr/src/sys/i386/conf/SAKURA or ee /usr/src/sys/amd64/conf/SAKURA)
make clean or rm -rf /usr/obj
make buildworld
make buildkernel KERNCONF=SAKURA
make installkernel KERNCONF=SAKURA
make installworld
#mergemaster -UPi
reboot

再起動後
cvsup ports-supfile
FORCE_PKG_REGISTER=1 portupgrade -aRf

  • 新しい1つの例
/usr/ports/ports-mgmt/pkg_replace を入れる
cd /usr/src
(csup releng-supfile)
(ee /usr/src/sys/i386/conf/SAKURA or ee /usr/src/sys/amd64/conf/SAKURA)
make clean or rm -rf /usr/obj
make buildworld
make buildkernel KERNCONF=SAKURA
make installkernel KERNCONF=SAKURA
make installworld
#mergemaster -UPi
reboot

再起動後
csup ports-supfile
FORCE_PKG_REGISTER=1 pkg_replace -aRf

そのかわり、メモリ使用量が増えます。

計測結果

  • 8.1-RELEASE/amd64 バイナリ (注:加入当初の計測結果)
1秒間あたりの簡易RSA演算回数 222
1秒間あたりのプロセス実行回数 15644
1秒間あたりのファイルI/O実行回数 5524
1秒間あたりの正規表現文字列置換回数 3099 

  • 8.2-RELEASE/amd64 バイナリ(2011年11月25日計測)
1秒間あたりの簡易RSA演算回数 217
1秒間あたりのプロセス実行回数 14723
1秒間あたりのファイルI/O実行回数 5494
1秒間あたりの正規表現文字列置換回数 3133

  • 8.2-RELEASE-p4/amd64 最適化済(2011年11月27日計測)
1秒間あたりの簡易RSA演算回数 320
1秒間あたりのプロセス実行回数 14705
1秒間あたりのファイルI/O実行回数 5800 
1秒間あたりの正規表現文字列置換回数 4009 

難点

余計なものまでインストールされてしまう。

ついでに、以前載せたレンタルサーバーライトの計測結果

さくらの激重だった時代から一新して、変わったばかりのサーバー

FreeBSD 7.1-RELEASE-p15 #10: Tue Nov 16 09:48:35 JST 2010
    admin@www200.sakura.ne.jp:/usr/obj/usr/src/sys/SAKURA11S
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 CPU         T7200  @ 2.00GHz (1991.83-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6

real memory  = 2145320960 (2045 MB)
avail memory = 2091802624 (1994 MB)
MPTable: <OEM00000 PROD00000000>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
em0: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xdf00-0xdf1f
twe0: <3ware Storage Controller. Driver version 1.50.01.002>
twe0: [GIANT-LOCKED]
twed0: <Unit 0, TwinStor, Normal> on twe0
twed0: 190781MB (390719920 sectors)

PyukiWiki?ベンチ結果

1秒間あたりの簡易RSA演算回数 211
1秒間あたりのプロセス実行回数 5300
1秒間あたりのファイルI/O実行回数 4435
1秒間あたりの正規表現文字列置換回数 2881 

今月(2011年8月)新規契約したサーバー

FreeBSD 7.1-RELEASE-p15 #10: Tue Nov 16 09:48:35 JST 2010
   admin@www200.sakura.ne.jp:/usr/obj/usr/src/sys/SAKURA11S
CPU: Intel(R) Xeon(R) CPU           E3110  @ 3.00GHz (2992.51-MHz 686-class CPU)
(注:L2 6M L3 なし)
real memory  = 3488022528 (3326 MB)
avail memory = 3410808832 (3252 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
3ware device driver for 9000 series storage controllers, version: 3.70.05.001
twa0: <3ware 9000 series Storage Controller> port 0x2000-0x20ff
em0: <Intel(R) PRO/1000 Network Connection 6.9.6>
em1: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0x4000-0x401f
da0 at twa0 bus 0 target 0 lun 0
da0: <AMCC 9650SE-2LP DISK 4.08> Fixed Direct Access SCSI-5 device 
da0: 100.000MB/s transfers
da0: 476827MB (976541696 512 byte sectors: 255H 63S/T 60786C)

PyukiWiki?ベンチ結果

1秒間あたりの簡易RSA演算回数 476
1秒間あたりのプロセス実行回数 12003
1秒間あたりのファイルI/O実行回数 9551
1秒間あたりの正規表現文字列置換回数 6568

チューニング以外に、VPSに64bit OS、32bit OS どちらを選ぶべきか?

  • ちょっとでも、常駐メモリ容量、ディスク容量を節約したいのであれば、32bit OS
    でも、同居しているVPSのユーザーに、オーバーヘッドをかけることにより、迷惑をかけます。
  • 少しでも高速化するのであれば、64bit OS
    x86 (32bitOS) より、x64 (amd64 / 64bitOS) のが、レジスタ数が単純比較しても、約2倍あり、それだけでも高速化につながります。それ以外にも命令も増えていますが・・・・

6rdを使って、IPV6に対応する

詳細は、こちらのさくらインターネット研究所に書いてありますが、少し移すと・・・

  • カーネルにパッチを当てる
# cd /usr/src
# patch -p0 </root/stf_6rd_20100923-1.diff

  • カーネルモジュールを作る
# cd sys/modules/if_stf/
# make
# make install

  • IPV6アドレスの算出をする。(さくらのアドレスになっていませんでした)
    59.106.69.125 と仮定して
# printf "2001:e41:%02x%02x:%02x%02x::1\n" 59 106 69 125
2001:e41:3b6a:457d::1
  • /etc/rc.confに記述する (FreeBSD 8)
ipv6_enable="YES"
cloned_interfaces="stf0"
ipv6_ifconfig_stf0="上記で算出したIPV6アドレス/32"
ipv6_defaultrouter="2001:e41:3dd3:e07d::1"
  • /etc/rc.confに記述する (FreeBSD 9)
ipv6_activate_all_interface="YES"
cloned_interfaces="stf0"
ifconfig_stf0_ipv6="inet6 上記で算出したIPV6アドレス/32"
ipv6_defaultrouter="2001:e41:3dd3:e07d::1"
  • 再起動をし、その後確認する。
# reboot

# ifconfig stf0
# netstat -nr -f inet6 | grep default

  • 通信テスト
# ping6 www.iij.ad.jp

  • ApacheでIPV6対応を忘れやすい部分
  • ports で Apacheを入れている場合、apr もIPV6対応にしないと動きません。

というか、カスタムOSのインストール方法、わからないの?

簡単に・・・説明だけしておこう。

OS再インストールを選んでから、カスタムOSインストールへ、を選択する
OSを選択してから、確認ボタンを押して、起動する。

OSをインストールする。

OSインストールが終了したら、一度再起動をかける。
再び、CDから起動した状態になるが、この時点でインストーラを終了する。
(終了できないときは、Ctrl+Alt+Del送信ボタンを押す)

再び再起動がかかったら、以下のアクションを5秒以内で行う。
・VPSホーム をクリック
・仮想サーバー操作「停止」ボタンをクリック

その後、仮想サーバー操作「開始」ボタンをクリックして、
あとは、リモートコンソールを開けばOK

簡単でしょ?あれ?難しいか・・

肝心の中身のインストール方法がかいてないもんね。

細かいことは、ぐぐってねなの。

え?ファイルクレクレ君?

  • cvsup releng-supfile
    file releng-supfile.txt 2012-02-21(火) 13:52:44 417 bytes
    TOTAL: 30 TODAY: 0 YESTERDAY:1

  • cvsup ports-supfile
    file ports-supfile.txt 2012-02-21(火) 13:52:44 169 bytes
    TOTAL: 19 TODAY: 0 YESTERDAY:1

  • カーネルチューニング済ファイル (8.1/8.2-RELEASE)
    file SAKURAVPS.txt 2012-02-21(火) 13:52:44 12.7 KB
    TOTAL: 32 TODAY: 0 YESTERDAY:1

  • カーネルチューニング済ファイル (9.0-RELEASE)
    file SAKURAVPS9.txt 2012-02-21(火) 13:52:44 13.6 KB
    TOTAL: 8 TODAY: 0 YESTERDAY:1

  • 6rd サポート by Hiroki Sato氏 (8.1/8.2-RELEASE , 9.0-RELEASE両方とも動きます)
    file stf_6rd_20100923-1.diff.txt 2012-02-21(火) 13:52:44 36.8 KB
    TOTAL: 23 TODAY: 0 YESTERDAY:1

アンケート

選択枝 投票
役に立った 1  

このことに関する話題

お名前:
題名:

このホームページは、[さくらのVPS ]で動いています。
www.daiba.cx
yahoo 出会い