1 有关系统微调的一般说明 #
本手册介绍如何查明导致性能问题的原因,并提供这些问题的解决方法。在您开始微调系统之前,应确保已排除常见问题并已找到问题的原因。另外,还应针对如何微调系统制定详细的计划,因为应用随机出现的微调提示往往无助于解决问题,甚至可能让情况变得更糟。
指定需要解决的问题。
如果性能下降是近期才出现的问题,请确定最近对系统所做的任何更改。
确定将问题视为性能问题的原因。
指定可用于分析性能的度量。例如,此度量可以是延迟、吞吐量、同时登录用户最大数量或活动用户最大数量。
使用上一步骤中指定的度量来测量当前性能。
确定应用程序将大部分时间消耗在哪个(哪些)子系统上。
监视系统和/或应用程序。
分析数据,对消耗时间的子系统进行分类。
微调在上一步骤中确定的子系统。
使用前面相同的度量,在不进行监视的情况下重新测量当前性能。
如果性能仍不可接受,请从步骤 3 重新开始。
1.1 确认要解决的问题 #
在开始微调系统之前,请尝试尽可能具体地描述问题。类似“系统速度慢!”之类的陈述不是有用的问题说明。例如,要对是需要整体提高系统速度还是仅在高峰期提高进行区分。
此外,应确保您能够对问题应用测量,否则无法校验微调是否成功。您应始终能对“微调前”和“微调后”进行比较。要使用的度量取决于您正在调查的方案或应用程序。例如,可通过以下术语描述相关的 Web 服务器度量:
- 延迟
传送页所需的时间
- 吞吐量
每秒提供的页数量,或每秒传送的 MB 数量
- 活动用户
可以下载页同时仍可以在可接受的延迟范围内接收页的最大用户数
1.2 排除常见问题 #
性能问题常常是由网络或硬件问题、bug 或配置问题造成的。在尝试微调系统之前,请确保排除下面所列的此类问题:
检查
systemd
日志的输出(请参见第 21 章 “journalctl
:查询systemd
日志”)中的异常项。检查(使用
top
或ps
)是否有特定进程行为异常,不正常消耗 CPU 时间或内存。通过查看
/proc/net/dev
来检查网络问题。如果物理磁盘出现 I/O 问题,请确保其并非由硬件问题(使用
smartmontools
)或整个磁盘导致。确保将后台作业安排在服务器负载较低的时段执行。此外,应以较低的优先级(通过
nice
设置)运行这些作业。如果计算机运行有使用相同资源的多个服务,请考虑将服务移到另一台服务器。
最后,确保您的软件是最新的。
1.3 确定瓶颈 #
微调系统时,如何确定瓶颈往往是最困难的。SUSE Linux Enterprise Server 提供许多工具来帮助您完成此任务。有关一般系统监视应用程序和日志文件分析的详细信息,请参见第 II 部分 “系统监视”。如果问题需要长时间的深入分析,Linux 内核会提供执行此类分析的方法。有关具体范围,请参见第 III 部分 “内核监视”。
收集数据后,需要对其进行分析。首先,检查服务器的硬件(内存、CPU、总线)及其 I/O 容量(磁盘、网络)是否足够。如果满足这些基本条件,则微调系统可能是有益的。
1.4 逐步微调 #
确保认真规划微调本身。请务必每次仅执行一个步骤。只有这样,才能测量所做的更改是起到了改善作用还是进一步产生了负面影响。应对每个微调活动进行足够长时间的测量,确保可以基于重要数据执行分析。如果您未测量到正面影响,请不要做出永久性更改。否则可能会在将来造成负面影响。