12.1 简介
没有哪个系统能够满足我们对于速度的追求,任何计算机系统的性能都有提高的余地。
我们可以通过关闭无用的服务、调整内核参数或是添加新的硬件来改善系统性能。
系统调优的第一步是理解系统需求以及是否能够满足这些需求。不同类型的应用程序有各自不同的关键指标。你需要回答的问题如下。
- 系统的关键资源是不是
CPU?从事工程模拟的系统对于CPU频率的需求要强于其他资源。 - 网络带宽对于系统是否重要?文件服务器不用做什么运算操作,但却能榨干网络带宽。
- 磁盘访问速度对于系统是否重要?相较于计算引擎,文件服务器或数据库服务器对于磁盘的要求更高。
- 系统的关键资源是不是内存?没有哪个系统不需要内存,但是数据库服务器通常需要在内存中建立大规模的数据表来执行查询,文件服务器如果配备了大容量的磁盘缓存,效率会更高。
- 你的系统是否被黑过?系统突然变得迟缓的原因可能是运行了恶意软件。这种情况在
Linux系统中并不常见,但是拥有大量用户的系统(例如大学或商业网络)容易遭受到暴力密码破解攻击。
接下来的问题是:该如何测算资源的使用情况?知晓了系统的使用模式之后,自然会引发这个问题,但是未必能给出问题的答案。文件服务器会将经常访问的文件缓存在内存中,因此对于内存不足的文件服务器,限制其性能表现的也许是磁盘/内存,而不是网络带宽。
Linux拥有不少系统分析工具。很多都已经在第8章、第9章和第11章中讲过了。本章将会介绍其他一些性能监视工具。
下面是可用于检查各子系统的工具列表。其中很多(并非全部)工具在本书中都已经讨论过了。
- CPU:top、dstat、perf、ps、mpstat、strace 和 ltrace。
- 网络:netstat、ss、iotop、ip、iptraf、nicstat、ethtool 和 lsof。
- 磁盘:ftrace、iostat、dstat 和 blktrace。
- 内存:top、dstat、perf、vmstat 和 swapon。
这些工具中有很多已经包含在了标准Linux发行版中。其他的可以使用包管理器自行安装。
