FreeBSD/amd64 part2 (and for oyster901)
934 :
名無しさん@お腹いっぱい。:2009/11/12(木) 04:44:21
マジで!?
wktk!!
zshの補完の遅さにたまりかねて
zshのバイナリのファイルをi386版で置き換えたら快適になったよ。
(libiconvの共有ライブラリも必要。/usr/local/lib32に置いてldconfigを通す)
linuxエミュが32bitなのか64bitなのかわからんかったため、
amd64版への移行を躊躇っていたが、
>>747を読んで安心した。
ありがとう、
>>747 # vje亡き今、atok xに依存しきっているものですから (不具合は色々あるんだけど)
flashが見られるようにしてみようとlinux_base-fc10に上げたら
atokxが動かなくなって涙目
wnnは未だに動くんだか動かないんだかはっきりしないから困る
8.0-RC3でzfs使ったファイルサーバを作って運用してるんですが、昨日、旧環境から大量データ
を移行してる途中で急にzpoolへの書き込み速度が1/10位まで落ち込みました。
同じHDD上にufs2もあるので試しにそっちにコピーしてみたらそれなりの速度だったので、H/Wの
問題ではないと考えています。
気になるのはメモリの使われ方で、2GB積んでますがtopで見ると
88 processes: 1 running, 87 sleeping
CPU: 0.0% user, 0.0% nice, 3.2% system, 0.6% interrupt, 96.2% idle
Mem: 1531M Active, 130M Inact, 231M Wired, 72M Cache, 213M Buf, 8960K Free
Swap: 500M Total, 34M Used, 465M Free, 6% Inuse
こんな感じで、なんかzfsがメモリ足りてない?というか、Active 1531M って?って感じです。
zfsが掴んでるメモリ量はWiredに出るんじゃないんでしたっけ?ちなみに、loader.confには
vm.kmem_size="1200M"
vm.kmem_size_max="1200M"
vfs.zfs.arc_max="100M"
vfs.zfs.vdev.cache.size="20M"
と書いています。実際にsysctlで確認しても1.2GBに設定されています。
何方か、zfsのパフォーマンスを改善する方法は無いでしょうか?あと、なんのプロセスが1.5Gも
食ってるのか確認する方法はありませんか?
うちはメモリ6G積んでデフォルト設定で
82 processes: 82 sleeping
CPU 0: 0.0% user, 0.0% nice, 0.4% system, 0.0% interrupt, 99.6% idle
CPU 1: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
Mem: 374M Active, 34M Inact, 3000M Wired, 3020K Cache, 18M Buf, 2514M Free
Swap: 1024M Total, 1024M Free
少し前からチューニングは不要になってたはず。
単にメモリが足りないだけじゃ?
# sysctl -h vm.kmem_size
vm.kmem_size: 2,071,486,464
# sysctl -h vm.kmem_size_max
vm.kmem_size_max: 3,865,468,109
# sysctl -h vfs.zfs.arc_max
vfs.zfs.arc_max: 1,553,614,848
# sysctl -h vfs.zfs.vdev.cache.size
vfs.zfs.vdev.cache.size: 10,485,760
俺はファイルサーバーで使ってるだけだから全然詳しくないけど
調べるのは top -osize じゃだめなの?
942 :
940:2009/11/22(日) 15:26:09
ちなみに再起動直後はこんな感じです
last pid: 1859; load averages: 0.26, 0.24, 0.11 up 0+00:02:39 15:06:36
77 processes: 1 running, 76 sleeping
CPU: 0.0% user, 0.0% nice, 2.7% system, 0.0% interrupt, 97.3% idle
Mem: 47M Active, 23M Inact, 113M Wired, 340K Cache, 36M Buf, 1789M Free
Swap: 500M Total, 500M Free
メモリ4GBに増やしてみたけど駄目だ、このパフォーマンスは使い物にならん ('A`
zpool iostat 2 の結果
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
zpool0 811G 1.89T 2 114 156K 4.47M
zpool0 811G 1.89T 4 150 311K 4.84M
zpool0 811G 1.89T 7 79 466K 1.40M
zpool0 811G 1.89T 8 92 530K 2.59M
zpool0 811G 1.89T 7 114 498K 2.63M
zpool0 811G 1.89T 8 99 529K 2.63M
zpool0 811G 1.89T 6 88 436K 2.55M
zpool0 811G 1.89T 7 114 466K 1.48M
systat -vmstar の結果(ad2からda0へファイルコピー中)
Disks ad2 da0 da1 pass0 pass1
KB/t 51.27 22.19 19.17 0.00 0.00
tps 57 75 79 0 0
MB/s 2.86 1.62 1.48 0.00 0.00
%busy 8 75 81 0 0
ちなみに、同じ da0 上にあるUFS2領域だと
Disks ad2 da0 da1 pass0 pass1
KB/t 61.72 63.05 0.00 0.00 0.00
tps 886 854 0 0 0
MB/s 53.40 52.59 0.00 0.00 0.00
%busy 50 39 0 0 0
20倍以上速いよ('A`
よくわからんけど同じのやってみた
5400rpm の WD10EADSx4 の RAID-Z で、
同一プール内のファイルシステム間で ISO のコピー中に zpool iostat 2
capacity operations bandwidth
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
tank 2.05T 1.58T 46 0 2.87M 0
tank 2.05T 1.58T 636 7 77.0M 1023K
tank 2.05T 1.58T 147 918 18.4M 106M
tank 2.05T 1.58T 1.24K 322 158M 12.2M
tank 2.05T 1.58T 985 100 121M 6.42M
tank 2.05T 1.58T 4 1.00K 466K 125M
tank 2.05T 1.58T 0 1.01K 0 127M
tank 2.05T 1.58T 37 823 4.69M 101M
tank 2.05T 1.58T 533 295 66.2M 28.2M
tank 2.05T 1.58T 0 854 0 94.7M
tank 2.05T 1.58T 0 685 0 75.9M
tank 2.05T 1.58T 16 98 552K 1.28M
tank 2.05T 1.58T 0 0 0 0
同じく ISO コピー中に systat -vmstat、適当なところを見つくろってコピーしたデータ
(da0がUSBメモリで/bootのみ、ad4〜10でtank)
Disks ad4 ad6 ad8 ad10 da0 pass0 3543144 wire
KB/t 45.10 45.22 44.97 45.10 0.00 0.00 464216 act
tps 833 823 858 815 0 0 65040 inact
MB/s 36.69 36.35 37.69 35.88 0.00 0.00 5604 cache
%busy 65 66 63 65 0 0
ついでに Windows 7 x64 から samba で公開してるファイル システムを計測
--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
Crystal Dew World :
http://crystalmark.info/ --------------------------------------------------
Sequential Read : 57.464 MB/s
Sequential Write : 105.008 MB/s
Random Read 512KB : 57.442 MB/s
Random Write 512KB : 98.466 MB/s
Random Read 4KB : 7.776 MB/s
Random Write 4KB : 7.804 MB/s
Test Size : 100 MB
Date : 2009/11/22 19:05:47
な、なんなんなんだこの差は('A`
ちなみに同一pool内のFS間で600MBのファイルをコピピって見た場合の
zpool iostat 2 の書き込みバンド幅もやっぱ10M前後だった。
つーても、ZFSに関係しそうなチューニングはメモリくらいしかやってないつもりなんだけど
なぁ。とりあえずRC3を最初から入れなおしてみるか('A` チラ裏スマソ
>944
良ければ搭載メモリ量とloader.confの記述を教えてくだされ。
あと、pool作るときにcacheだけ別deviceに取ったりとか工夫してます?
948 :
900:2009/11/23(月) 10:28:48
>>871 まだ見てるか分からんが8.0-RC3で追試したところ
i386、amd64共にHDDの認識問題もオンボードRAID含めて解決していたので
こっちでは問題なくインストール完了出来た。
今のところほぼ11/25で確定っぽい8.0-RELEASEで
これが改悪される事はまず無いので、ML115G5でも8.0は無事使えそう。
csupしてmake buildworldした結果
# uname -a
FreeBSD ***.***.*** 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Mon Nov 23 09:45:44 JST 2009 root@***.***.***:/usr/obj/usr/src/sys/WWW amd64
こうなったけど
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad12s1a 507630 468522 -1502 100% /
devfs 1 1 0 100% /dev
/dev/ar1s1d 151368706 4 139259206 0% /opt
/dev/ad12s1e 507630 12 467008 0% /tmp
/dev/ad12s1f 142251578 3254042 127617410 2% /usr
/dev/ar0s1d 151368706 24 139259186 0% /usr/home
/dev/ad12s1d 4036558 35664 3677970 1% /var
こんな感じでとりあえず問題は起きていない。
ちょいとおまえさん
>>948 > /dev/ad12s1a 507630 468522 -1502 100% /
> こんな感じでとりあえず問題は起きていない。
今後カーネルの再構築・差し替えしたいときどうすんだい
メモリを11GB載せているけどARCは使い切ってくれない。
自動設定されるarc_maxが小さいのもあるし
kmem_maxも大きくするとbootに失敗する。
ところで、cacheを同じデバイスに置く意味ってあるの?
さてnvidiaドライバかも〜ん
8.0-RELEASEと聞いたので make してみた。
FreeBSD/amd64 8.0-RC3 Core i7 860 + P55 chipset
real memory = 8589934592 (8192 MB)
avail memory = 8260472832 (7877 MB)
hw.physmem: 8571207680
hw.usermem: 5460008960
hw.realmem: 9126805504
# make update
# make clean
# rm -rf /usr/obj/*
# time make -j 8 buildworld buildkernel
(略)
4638.078u 645.307s 19:53.38 442.7% 7061+2220k 389+19759io 15416pf+0w
いい時代になったもんだ……
>953
豪快にONですね。
%sysctl -a kern.smp
kern.smp.forward_signal_enabled: 1
kern.smp.topology: 0
kern.smp.cpus: 8
kern.smp.disabled: 0
kern.smp.active: 1
kern.smp.maxcpus: 32
kern.smp.maxid: 7
にゃるほどありがとう
うちのi860やQ9550,PhenomII 955(c2)なんかでもやってみないと
P55って、PentiumMMXを思い出すな。
それはある
PentiumVのディアルマシンを使ってるんですが、32bitCPUをディアルにしてもAMD-64版は
使えないんでしょうか?
Z80でWindowsが動かない程度に無理
64bit級とはずいぶん古いネタを持ってきたもんだな
MC68kを2個でSUN-OS動いてたわけだが…。
16bitも32bitも命令には互換性有ったからな。
内部は最初から32bitだったし。
セガ・サターン!
×68000!
68000は内部32bitだからべつに2個でどうこうって話じゃないだろ
>964
そういうネタなんですよ
32bit * 2 だったら 33bit じゃね?
i7 860(w/HT)
# uname -rms
FreeBSD 7.2-RELEASE amd64
で8.0 RELEASEのをmakeすると
buildworldに 14:43 buildkernel で 4:29。
やっぱ-j16は多少は意味はあるのか。
>>> World build started on Sat Nov 28 23:17:17 JST 2009
>>> World build completed on Sat Nov 28 23:32:00 JST 2009
>>> Kernel build for GENERIC started on Sun Nov 29 08:44:12 JST 2009
>>> Kernel build for GENERIC completed on Sun Nov 29 08:49:41 JST 2009
make buildworld/buildkernel に対して -j2, -j4, -j8, -j16 をそれぞれ設定し、
make の所要時間を計測しグラフにするスクリプトを書くだけで俺なら日曜が終わりそうだ。
頭のいい人なら1時間もかからないだろう。誰か書いてくれないかなー。
にゃるほど
もちろん実行はシングルユーザモードでやらないと
無駄なcronが走ったり色々起こって計測値の分散が大きくなってしまうだろう
>>969 このスレにもいくつか計測結果が貼られている。俺も別のスレに貼った気が
するがどのスレか忘れた。
makeの多重度に起因するリミットもあり、-jは大き目を指定しておいてもオー
バーヘッドは少ないので問題ないという結論に至った。
>>975 残念だったな、make -jに数の指定は必須だ。
gnu make麦価率買ってんじゃねーよ。
11/30 05:30頃に csup にて src を更新した環境で、
GENERIC の make buildkernel で msk のところで error になってしまいます。
カスタム kernel (msk を nodevice したのとか)でも、msk を make しにいく様で、
msk の make を回避できません。
# もともとカスタム kernel で msk も nodevice にして make しようとして発覚
6系とかだと、nodevice 設定で make しなかったと解釈していたのですが、8系
はこういうものなのでしょうか?
/usr/src/sys/dev/msk/if_msk.c:225: error: 'DEVICEID_MRVL_4380' undeclared here (not in a function)
/usr/src/sys/dev/msk/if_msk.c: In function 'msk_phy_power':
/usr/src/sys/dev/msk/if_msk.c:1150: error: 'CHIP_ID_YUKON_UL_2' undeclared (first use in this function)
/usr/src/sys/dev/msk/if_msk.c:1150: error: (Each undeclared identifier is reported only once
/usr/src/sys/dev/msk/if_msk.c:1150: error: for each function it appears in.)
/usr/src/sys/dev/msk/if_msk.c: In function 'mskc_attach':
/usr/src/sys/dev/msk/if_msk.c:1654: error: 'CHIP_ID_YUKON_UL_2' undeclared (first use in this function)
cc1: warnings being treated as errors
/usr/src/sys/dev/msk/if_msk.c:1654: warning: comparison between pointer and integer
/usr/src/sys/dev/msk/if_msk.c:1655: error: 'CHIP_ID_YUKON_SUPR' undeclared (first use in this function)
/usr/src/sys/dev/msk/if_msk.c:1655: warning: comparison between pointer and integer
*** Error code 1
srcを全部取りなおして見れば?
とりあえず/sys/modules/Makefileを読んでみる。
980 :
977:2009/11/30(月) 23:10:48
>>979 module は make するんですね
もしかして、前(e.g. 6系)からそうでしたっけ??
読んでみりゃわかる
見てもわからんやつは、
聞いても判らん