AIX 5L 网络性能优化: 第 2 部分
2008-11-10 08:27:14 来源:WEB开发网正如您可以看到的,您将需要优化网络和 I/O 参数。如果服务器 Z 性能低下,那么这显然会影响其所有的 NFS 客户端。如果可能的话,对服务器进行专的优化,以使其作为 NFS 服务器(稍后将介绍更多相关内容)。
biod 守护进程又是启什么作用的呢?执行预读入和延迟写请求都需要这个守护进程。biod 守护进程提高了整体 NFS 性能,因为它可以充当与客户端应用程序之间的中间环节,既可以清空缓冲区缓存,也可以填满缓冲区缓存。如图 1 中所示,biod 守护进程将请求发送给服务器。另一方面,nfsd 是将 NFS 服务提供给客户端的中间环节。当服务器接收到客户端的 biod 通信时,服务器将使用 nfsd 守护进程,直到完成请求为止。
NFS 直到版本 4 才是有状态的,尽管它早在版本 2 中就可以使用 TCP,这又是为什么呢?图 2 显示了 NFS 相对于 TCP/IP 堆栈和 OSI 模型而言所处的位置。
图 2. OSI - TCP/IP - NFS
因为 NFS 使用了远程过程调用 (RPC),所以 NFS 并不位于传输堆栈中。RPC 是一个过程库,允许客户端和服务器进程执行系统调用,就好像它们是在自己的地址空间中执行这些系统调用一样。在典型的 UDP NFS 版本 2 或者 3 实现中,NFS 服务器在其客户端得到授权共享卷之后,向客户端发送某种类型的 cookie。这将有助于最大限度地降低网络流量。但问题是,如果服务器宕机了,那么客户端将继续使用请求塞满网络。这正是为什么使用 TCP 作为首选项的原因。只有版本 4 可以使用有状态的连接,并且只有版本 4 使用 TCP 作为其传输协议。
NFS 版本 4 没有与 portmapper 或者其它的守护进程(如 lockd 和 statd)进行交互,因为它们合并到了内核中。在除版本 4 之外的其他版本中,portmapper 用于注册 RPC 服务,并且提供客户端和服务器之间用于通信的端口号。外部数据表示形式 (XDR) 提供了一种这样的机制,RPC 和 NFS 可以使用这种机制来确保在客户端和服务器之间进行可靠的数据交换。它为二进制数据交换采用了一种平台独立的方式,以实现这些任务。这样做可以解决各种系统以不同方式来表现数据的可能性。使用 XDR,可以正确地对数据进行解释,即使是在完全不同的平台中。
更多精彩
赞助商链接