Major NFS changes in master.

看板DFBSD_kernel作者時間16年前 (2009/07/18 14:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
A ton of NFS work went into master today, and there may be some system destabilization until all the kinks can be worked out. The new NFS code completely reworks the RPC mechanics such that two kernel threads per mount can handle any number of concurrent asynchronous BIOs. One thread reads from the socket, and the other thread writes. The old 'many nfsiod processes' method is gone forever (nfsiod no longer has any effect), and there are basically no limitations on the number of concurrent I/Os which can be running. No more nfsiod's! Yah! I'm getting very good performance numbers on the read side for both UDP and TCP mounts but I still have a lot of tuning to do. On my on-motherboard GigE (nfe0) I get near wire speed when running tar or dd (reads)... 80-90 MBytes/sec from server-cache, and limited by server-disk-I/O when not from server-cache. I have not made the new kernel threads MPSAFE yet (they are almost there now but it was a bit too much to chew off until what has been done can be stabilized). As of today BIO READs use the new mechanic and it is readily apparent if you play with mounts on the (new) client side using mount_nfs -a 4, -a 8, -a 16, etc (up to -a 32). TCP (-T) tends to do better because the packets don't get fragmented as they do with UDP. BIO WRITEs will follow tomorrow, and also directory read-aheads. -Matt Matthew Dillon <dillon@backplane.com>
文章代碼(AID): #1AOMndkD (DFBSD_kernel)