赞
踩
在考虑 Network File Systems (NFS) 时,通常性能调优是您会想到的最后一件事。您太过专注于合理配置文件系统和确保系统的安全性,因而可能经常忘记 NFS 中的 N 代表网络。遗憾的是,如果您重视 NFS 调优,您可能有一个性能很差的 NFS。所幸,IBM 集成了若干工具来帮助监控和调优 AIX 上的 NFS,包括 nfsstat
和 nfsmo
。本文将描述这种监控和调优。
与之前版本的 AIX 一样,AIX 7 支持 NFS v2、v3 和 v4(默认为 NFS v4)。一般而言,NFS v4 应当优先于之前的版本得到使用,因为它更高效且通常处理大负荷和繁忙网络环境的性能。大多数现代客户端操作系统支持 NFS v4,因此无需支持旧的版本。
您必须同时调优客户端和服务器。本文解释如何使用 netpmon
为 NFS 客户端和 NFS 服务器监控读写子例程。您还可以使用 nmon
简要了解 NFS 活动,了解如何使用 nmon
来分析历史数据。您可以使用 netstat
验证网络的健康状况,因为较低的网络使用率(或设计不当的配置)会导致较差的 NFS 性能。本文还探讨 nfs4cl
等可用于特定 NFS 版本的实用工具。您还将了解一些最佳实践,包括跨尽量多的轴数传播 I/O。在这种情况下,CPU 负载是瓶颈,而非 I/O 系统。
与本系列的其他调优示例不同,对于 NFS,您必须监控(而且可能需要调优)所有子系统,包括 CPU、内存、I/O 和网络。从客户端角度来看,NFS 文件系统使用远程连接的磁盘。影响该挂载磁盘性能的所有因素会影响 NFS 客户端的性能。本文还讨论重要的守护进程,比如 nfsd
和 biod
,以及它们如何进行自我调优。您可以通过客户端与服务器之间的基本交互来理解幕后情况。最后,本文强调,不管您在调优哪个子系统,系统优化都是一个持续的过程。当然,监控系统的最佳时间是从一开始还未遇到问题和用户呼救之前。因为有太多的因素会影响 NFS 性能,一次仅进行一项更改,以便可以准确地评估更改的影响。
本节概述 NFS,因为它与 AIX 7 相关。您可以了解客户端与服务器如何相互关联,以及影响 NFS 性能的各种因素。
您可以在挂载文件系统期间选择版本类型,而且您可以在服务器上运行不同版本的 NFS。NFS 目前同时支持 TCP 和 UDP。因为 UDP 较快(做的较少),对最佳性能的需求胜于可靠性的一些环境(LAN 上)使用 UDP 可能会更好。TCP 更可靠(通过建立连接),它还在 WAN 上提供更好的性能,因为它的流程控制有助于最小化网络延迟。
NFS 的优势在于,它独立于机器类型和操作系统。它通过使用 Remote Procedure Calls (RPCs) 实现这一点,如图 1 所示。
图 1 展示 NFS 客户端 A 和 B 如何访问 NFS Server Z 上的数据。客户端计算机首先通过挂载文件系统请求访问导出的数据。然后当客户端线程试图处理 NFS 挂载文件系统内的数据,数据被重定向到 biod
,biod 通过 LAN 将数据带到 NFS 服务器及其 nfsd
守护进程。服务器使用 nfds
导出可用于其客户端的目录。
可以看出,您需要调优网络和 I/O 参数。如果 Server Z 性能很差,这显然会影响它的所有 NFS 客户端。如果可能,专门调优服务器,使其具有 NFS 服务器的功能(稍后详细说明)。
那么 biod
守护进程呢?执行预读和后写请求都需要用到该守护进程。biod
守护进程改进总体 NFS 性能,因为它要么清空、要么填满缓冲区高速缓存,充当客户端应用程序的一个联系。如 图 1 所示,biod
守护进程向服务器发送请求。另一方面,nfsd
是向客户端提供 NFS 服务的联系。当服务器接收来自客户端的 biod
通信时,服务器使用 nfsd
守护进程,直至请求完成。
为何在版本 4 之前 NFS 是无状态的,即使它早在版本 2 就可以使用 TCP?图 2 展示 NFS 与 TCP/IP 栈和 OSI 模型的关联。
NFS 不位于传输堆栈上,因为 NFS 使用 Remote Procedure Calls (RPCs)。RPCs 是一个程序库,允许客户端和服务器进程执行系统调用,如同这些调用是在其自己的地址空间执行的。在一个典型的 UDP NFS 版本 2 或 3 实现中,在授权客户端共享卷之后,NFS 服务器向其客户端发送一种 cookie。问题在于,如果服务器发生故障,客户端会继续通过请求泛滥网络。这就是偏好于使用 TCP 的原因。只有版本 4 可以使用有状态的连接,且只有版本 4 将 TCP 用作其传输协议。
NFS 版本 4 与端口映射程序或其他守护进程,比如 lockd
和 statd
,之间无交互,因为它们大批进入内核。在除版本 4 之外的其他版本中,端口映射程序用于注册 RPC 服务,并为客户端与服务器之间的通信提供端口号。External Data Representation (XDR) 提供机制来供 RPC 和 NFS 用来确保客户端与服务器之间的可靠数据交换。对于二进制数据的交换,它以一种独立于平台的方式进行。这解决了系统以不同方式表示数据的可能性。使用 XDR 可以正确解译数据,即使在不一样的平台上。
本节概述可用于监控 NFS 系统的工具。这些工具能使您快速对性能问题进行故障排除,并获取相关的数据以便进行历史趋势研究和分析。其中一些工具通常用于服务器,而其它工具则通常用于客户端。本节介绍 nmon
、topas
、 nfsstat
、nfs
、nfs4cl
和 netpmon
。
对于 NFS 调优,您最初可以使用 topas
或 nmon
这样的工具,因为它们提供一个漂亮的仪表板视图,显示系统中正在进行的工作。请记住,NFS 性能问题可能与您的 NFS 子系统根本没有任何关系。您的瓶颈可能出现在网络中&#x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。