2009-08-06 4 views
0

nfs를 사용하여 마운트하는 gentoo 디스크없는 클라이언트가 있으며 nfs의 처리량이 느린 것으로 보입니다. iperf는 네트워크가 770 Mb/s를 밀어 낼 수 있음을 보여주고 hdparm은 서버의 SATA 디스크를 90 Mb/s로 표시하지만 네트워크에서 dd를 수행하면 10 Mb/s (약 40 Mb/s 동일한 테스트가 서버에서 세 번째 시스템으로 수행됩니다).리눅스 디스크없는 클라이언트 nfs 처리량

이상한 점은 pxeboot가 nfsver2를 탑재한다는 것입니다. 이것이 문제가되는지는 모르지만, 부팅 후 다른 마운트는 nfsver3으로 마운트됩니다. 정말 어딘가 nfs와 구성 문제가있는 것 같지만, 차이를 만드는 아무것도 찾지 못했습니다. rsize = 8k, wsize = 8k, noatime, async 중 하나입니다. 누구나 찾을 수있는 팁이 있거나 디스크가없는 클라이언트에 대해 기대해야 할 10Mb/s의 처리량입니까?

+1

serverfault.com에 속해 있습니까? – drdaeman

답변

0

수정 사항이 흥미 롭습니다. pxelinux nfs 루트를 마운트 할 때 pxelinux.cfg 파일 (fstab이 아님)에 nfs 매개 변수를 설정해야합니다. nfs 루트 파티션을 nfsver3으로 설정하면 tcp의 성능이 향상됩니다. 그러나 실제로 차이를 만들었던 부분은 pxelinux config 파일과 fstab에서 rsize 및 wsize 매개 변수를 제거하고 nfs가 블록 크기가 무엇인지 알아내는 것이 었습니다. 이렇게하면 nfs 읽기/쓰기가 예상 한대로 수행됩니다. 다른 사람에게 도움이된다면 여기에 내 설정과 일부 측정 항목이 있습니다.


one ~ # nfsstat -m 
/from /dev/root 
Flags: rw,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nointr,nolock,proto=tcp, 
timeo=600,retrans=2,sec=sys,addr=192.168.0.5 

/store/tv from 192.168.99.99:/store/tv 
Flags: rw,noatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nointr,noloc 
k,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.99.99,mountvers=3,mountp 
roto=tcp,addr=192.168.99.99 

one ~ # time dd if=/dev/null of=/store/tv/test bs=16k count=10000 
10000+0 records in 
10000+0 records out 
163840000 bytes (164 MB) copied, 2.79913 s, 58.5 MB/s 

real 0m3.048s 
user 0m0.033s 
sys  0m1.983s 

one pxelinux.cfg # time dd if=/store/tv/test of=/dev/null bs=16k 
154614+1 records in 
154614+1 records out 
2533208064 bytes (2.5 GB) copied, 56.4591 s, 44.9 MB/s 

real 0m56.509s 
user 0m0.163s 
sys  0m26.802s 
0

저는 이것이 우리가 말하는 기가비트 네트워크라고 가정합니다. 100Mbit 네트워크는 최대 약 초당 10 메가 바이트입니다.

NFS는 일부 항목에서는 그리 효율적이지 않지만 대량 전송은 여전히 ​​유선 속도로 수행 할 수 있어야합니다. 얼마나 빨리 파일을 전송할 수 있습니까, 같은 네트워크를 통해, 예를 들어 ftp 또는 http?

스위치가 작동 속도를 늦추고 있는지, 케이블을 사용하여 상자를 서로 직접 연결해 보았습니까?