どうも、('A`)です。
えーと、昨日から今朝にかけて特化型スレで皆さんから色々と教えて頂きました。
ありがとうございました。
今も社内サーバを使って8.0 BETA2のパッケージ化の作業を進めていますが、
1つ皆さんにご報告致します。
作り直した結果のベンチマークを比較すると、少し改善されました。
8.0 BETA2の素の状態と今回の作り直した改良版、7.2Rとを比べるとこんな感じです。
ほぼ7.2Rと遜色ないスコアまで来ました。
TEST BETA2 8.0改良版 7.2R
Dhrystone 2 using register variables 917.9 916.5 921.4
Double-Precision Whetstone 425.6 425.7 419.7
Execl Throughput 231.6 434.5 435.7
File Copy 1024 bufsize 2000 maxblocks 254.4 385.5 390.9
File Copy 256 bufsize 500 maxblocks 174.5 424.0 385.6
File Copy 4096 bufsize 8000 maxblocks 116.5 118.3 118.8
Pipe Throughput 387.6 578.9 634.4
Pipe-based Context Switching 242.8 319.3 338.0
Process Creation 246.0 511.4 466.7
Shell Scripts (8 concurrent) 134.3 1577.0 1657.8
System Call Overhead 220.9 300.5 410.6
========= =========== =======
FINAL SCORE 256.9 448.3 462.2
|
今回('A`)が最初に作った8.0 BETA2(脳内プロジェクト名:OROCHIサーバ)には色んな
錘がぶら下がっていたのです。トホホ・・・
で、早速以下の方法で作り直しをしていました。
1) cvsupで、8.0のソースを持ってくる。
*default host=cvsup.jp.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
src-all
2) コンフィグレーションファイルで、以下の行をコメント化(無効化)しました。
#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
# Debugging for use in -current
#options KDB # Enable kernel debugger support.
#options DDB # Support DDB.
#options GDB # Support remote GDB.
#options INVARIANTS # Enable calls of extra sanity checking
#options INVARIANT_SUPPORT # Extra sanity checks of internal structures,
#required by INVARIANTS
#options WITNESS # Enable checks to detect deadlocks and cycles
#options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
3) カーネルの再構築だけを行ないます。
下準備として以下の様に弄ります。
rmdir /usr/obj /usr/games
mkdir /home/service/obj
ln -s /home/service/obj /usr/obj
これはT-Banana&A-Tigerの/usrパーティションが2GBしか現状割り当てて
いないので、/usr/objがあふれちゃうので、それを回避する為です。
cd /usr/src
make -j4 buildkernel KERNEL=ATIGER6481
make installkernel KERNEL=ATIGER6481
この時のシステム設定は以下の通り。
/boot/loader.conf
-------------------------------------
(何も記述しない)
-------------------------------------
/etc/sysctl.conf
-------------------------------------
net.inet.tcp.rfc1323=0
net.inet.tcp.sack.enable=0
(この記述を入れた後で、/etc/rc.d/sysctl restartでsysctlを再起動しておく)
-------------------------------------
/etc/make.conf
-------------------------------------
CFLAGS= -O1 -fno-strict-aliasing -pipe
COPTFLAGS= -O1 -fno-strict-aliasing -pipe
-------------------------------------
4) カーネル再構築が終わったら、1回サーバを再起動する。
(新しいカーネルを反映させる。)
で、戻ってきたら、/usr/src をtarで固めておきます。
cd /usr
tar -czpf src-8R-BETA2_2.tgz src/
5) 今度はworldの再構築(make buildworld)を実施して、make installworldする。
cd /usr/src
make -j4 buildworld
make installworld
6) もう1度サーバを再起動する。
で、戻ってきたら、/usr/obj (実際には /home/service/obj)をtarで固めておきます。
cd /home/service
tar -czpf obj-8R-BETA2_2.tgz obj/
rm -rf /home/service/obj/*
7) 最後に以下のコマンドを実行します。
ln -s aj /etc/malloc.conf
そうすると、/etcの中に以下の様にシンボリックリンクができます。
lrwxr-xr-x 1 root wheel 2 Jul 31 01:22 malloc.conf -> aj
で、作ったtarファイル(src-8R-BETA2_2.tgzとobj-8R-BETA2_2.tgz)を
外部のサーバに保管しておきます。
で、このファイルを他の8.0 BETA2のサーバに持って行って、該当のディレクトリに
設置してあげると、おんなじ様に作れるかな、と。
で、作り直した社内サーバでunixbenchiを実行した結果の詳細は以下の通りです。
結果、非力の社内サーバでも7.2Rより性能出ています。
===================================================================================
BYTE UNIX Benchmarks (Version 4.1.0)
System -- w44.maido3.cc
Start Benchmark Run: Fri Jul 31 03:18:28 UTC 2009
1 interactive users.
3:18AM up 52 mins, 1 user, load averages: 0.00, 0.00, 0.00
-r-xr-xr-x 1 root wheel 134264 Jul 31 02:16 /bin/sh
/bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD),
dynamically linked (uses shared libs), for FreeBSD 8.0 (800106), stripped
/dev/ar0s1d 2026030 1234214 629734 66% /usr
Dhrystone 2 using register variables 10695188.6 lps (10.0 secs, 10 samples)
Double-Precision Whetstone 2341.1 MWIPS (10.0 secs, 10 samples)
System Call Overhead 450763.3 lps (10.0 secs, 10 samples)
Pipe Throughput 720194.2 lps (10.0 secs, 10 samples)
Pipe-based Context Switching 127731.7 lps (10.0 secs, 10 samples)
Process Creation 6443.9 lps (30.1 secs, 3 samples)
Execl Throughput 1868.5 lps (29.8 secs, 3 samples)
File Read 1024 bufsize 2000 maxblocks 735749.0 KBps (30.0 secs, 3 samples)
File Write 1024 bufsize 2000 maxblocks 153888.0 KBps (30.0 secs, 3 samples)
File Copy 1024 bufsize 2000 maxblocks 152668.0 KBps (30.0 secs, 3 samples)
File Read 256 bufsize 500 maxblocks 202106.0 KBps (30.0 secs, 3 samples)
File Write 256 bufsize 500 maxblocks 112166.0 KBps (30.0 secs, 3 samples)
File Copy 256 bufsize 500 maxblocks 70175.0 KBps (30.0 secs, 3 samples)
File Read 4096 bufsize 8000 maxblocks 1839618.0 KBps (30.0 secs, 3 samples)
File Write 4096 bufsize 8000 maxblocks 68977.0 KBps (30.0 secs, 3 samples)
File Copy 4096 bufsize 8000 maxblocks 68622.0 KBps (30.0 secs, 3 samples)
Shell Scripts (1 concurrent) 4659.1 lpm (60.3 secs, 3 samples)
Shell Scripts (8 concurrent) 946.2 lpm (60.2 secs, 3 samples)
Shell Scripts (16 concurrent) 481.7 lpm (60.2 secs, 3 samples)
Arithmetic Test (type = short) 1453297.7 lps (10.0 secs, 3 samples)
Arithmetic Test (type = int) 1477484.1 lps (10.0 secs, 3 samples)
Arithmetic Test (type = long) 380708.9 lps (10.0 secs, 3 samples)
Arithmetic Test (type = float) 1081341.2 lps (10.0 secs, 3 samples)
Arithmetic Test (type = double) 598780.5 lps (10.0 secs, 3 samples)
Arithoh 265747881.5 lps (10.0 secs, 3 samples)
C Compiler Throughput 1463.3 lpm (60.2 secs, 3 samples)
Dc: sqrt(2) to 99 decimal places 169436.5 lpm (30.1 secs, 3 samples)
Recursion Test--Tower of Hanoi 100125.3 lps (20.1 secs, 3 samples)
INDEX VALUES
TEST BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 10695188.6 916.5
Double-Precision Whetstone 55.0 2341.1 425.7
Execl Throughput 43.0 1868.5 434.5
File Copy 1024 bufsize 2000 maxblocks 3960.0 152668.0 385.5
File Copy 256 bufsize 500 maxblocks 1655.0 70175.0 424.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 68622.0 118.3
Pipe Throughput 12440.0 720194.2 578.9
Pipe-based Context Switching 4000.0 127731.7 319.3
Process Creation 126.0 6443.9 511.4
Shell Scripts (8 concurrent) 6.0 946.2 1577.0
System Call Overhead 15000.0 450763.3 300.5
=========
FINAL SCORE 448.3
===================================================================================
さて、風邪引きさんのエース( ,_ノ` )y━・~~~とこれからの事を相談しておこうっと・・・
それでは、また。
[追記 18:05]
さっき作ったtarファイルを使ってカーネル再構築とworldの再構築をしてみたサーバの
ベンチマークを取ってみました。
===================================================================================
BYTE UNIX Benchmarks (Version 4.1.0)
System -- w44.maido3.cc
Start Benchmark Run: Fri Jul 31 07:59:50 UTC 2009
1 interactive users.
7:59AM up 5 mins, 1 user, load averages: 0.01, 0.10, 0.06
-r-xr-xr-x 1 root wheel 134264 Jul 31 07:51 /bin/sh
/bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD),
dynamically linked (uses shared libs), for FreeBSD 8.0 (800106), stripped
/dev/ar0s1d 2026030 710152 1153796 38% /usr
Dhrystone 2 using register variables 10695784.5 lps (10.0 secs, 10 samples)
Double-Precision Whetstone 2341.1 MWIPS (10.0 secs, 10 samples)
System Call Overhead 450319.1 lps (10.0 secs, 10 samples)
Pipe Throughput 721703.4 lps (10.0 secs, 10 samples)
Pipe-based Context Switching 128045.2 lps (10.0 secs, 10 samples)
Process Creation 6427.9 lps (30.1 secs, 3 samples)
Execl Throughput 1863.3 lps (29.7 secs, 3 samples)
File Read 1024 bufsize 2000 maxblocks 741239.0 KBps (30.0 secs, 3 samples)
File Write 1024 bufsize 2000 maxblocks 155955.0 KBps (30.0 secs, 3 samples)
File Copy 1024 bufsize 2000 maxblocks 154548.0 KBps (30.0 secs, 3 samples)
File Read 256 bufsize 500 maxblocks 202783.0 KBps (30.0 secs, 3 samples)
File Write 256 bufsize 500 maxblocks 111883.0 KBps (30.0 secs, 3 samples)
File Copy 256 bufsize 500 maxblocks 70148.0 KBps (30.0 secs, 3 samples)
File Read 4096 bufsize 8000 maxblocks 1849952.0 KBps (30.0 secs, 3 samples)
File Write 4096 bufsize 8000 maxblocks 68710.0 KBps (30.0 secs, 3 samples)
File Copy 4096 bufsize 8000 maxblocks 68642.0 KBps (30.0 secs, 3 samples)
Shell Scripts (1 concurrent) 4626.8 lpm (60.3 secs, 3 samples)
Shell Scripts (8 concurrent) 947.9 lpm (60.2 secs, 3 samples)
Shell Scripts (16 concurrent) 482.4 lpm (60.2 secs, 3 samples)
Arithmetic Test (type = short) 1453650.4 lps (10.0 secs, 3 samples)
Arithmetic Test (type = int) 1478038.2 lps (10.0 secs, 3 samples)
Arithmetic Test (type = long) 380825.2 lps (10.0 secs, 3 samples)
Arithmetic Test (type = float) 1081323.8 lps (10.0 secs, 3 samples)
Arithmetic Test (type = double) 598988.2 lps (10.0 secs, 3 samples)
Arithoh 265853982.1 lps (10.0 secs, 3 samples)
C Compiler Throughput 1465.7 lpm (60.2 secs, 3 samples)
Dc: sqrt(2) to 99 decimal places 171138.7 lpm (30.1 secs, 3 samples)
Recursion Test--Tower of Hanoi 100155.3 lps (20.1 secs, 3 samples)
INDEX VALUES
TEST BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 10695784.5 916.5
Double-Precision Whetstone 55.0 2341.1 425.7
Execl Throughput 43.0 1863.3 433.3
File Copy 1024 bufsize 2000 maxblocks 3960.0 154548.0 390.3
File Copy 256 bufsize 500 maxblocks 1655.0 70148.0 423.9
File Copy 4096 bufsize 8000 maxblocks 5800.0 68642.0 118.3
Pipe Throughput 12440.0 721703.4 580.1
Pipe-based Context Switching 4000.0 128045.2 320.1
Process Creation 126.0 6427.9 510.2
Shell Scripts (8 concurrent) 6.0 947.9 1579.8
System Call Overhead 15000.0 450319.1 300.2
=========
FINAL SCORE 448.8
===================================================================================
トータルスコアがCore2 Duo E6300だったら、448前後で安定しています。
i7サーバにいれたら、どの程度になるかなあ・・・
7.2Rの時で560.6だったから、その位出るといいなあ。
|