当前位置:   article > 正文

NFS性能调优--实时监测_nfsstat 性能数据

nfsstat 性能数据

简介

在考虑 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 回顾

本节概述 NFS,因为它与 AIX 7 相关。您可以了解客户端与服务器如何相互关联,以及影响 NFS 性能的各种因素。

您可以在挂载文件系统期间选择版本类型,而且您可以在服务器上运行不同版本的 NFS。NFS 目前同时支持 TCP 和 UDP。因为 UDP 较快(做的较少),对最佳性能的需求胜于可靠性的一些环境(LAN 上)使用 UDP 可能会更好。TCP 更可靠(通过建立连接),它还在 WAN 上提供更好的性能,因为它的流程控制有助于最小化网络延迟。

NFS 的优势在于,它独立于机器类型和操作系统。它通过使用 Remote Procedure Calls (RPCs) 实现这一点,如图 1 所示。

图 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 模型的关联。

图 2. OSI - TCP/IP - NFS
OSI 模型、TCP/IP 模型和 NFS 的图解

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 系统的工具。这些工具能使您快速对性能问题进行故障排除,并获取相关的数据以便进行历史趋势研究和分析。其中一些工具通常用于服务器,而其它工具则通常用于客户端。本节介绍 nmontopas、 nfsstatnfsnfs4cl 和 netpmon

nmon 和 topas

对于 NFS 调优,您最初可以使用 topas 或 nmon 这样的工具,因为它们提供一个漂亮的仪表板视图,显示系统中正在进行的工作。请记住,NFS 性能问题可能与您的 NFS 子系统根本没有任何关系。您的瓶颈可能出现在网络中&#x

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/535395
推荐阅读
相关标签
  

闽ICP备14008679号