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 Desktop 提供了许多工具来帮助您完成此任务。有关一般系统监控应用程序和日志文件分析的详细信息,请参见第 II 部分 “系统监控”。如果问题需要长时间的深入分析,Linux 内核会提供执行此类分析的方法。有关具体范围,请参见第 III 部分 “内核监控”。
收集数据后,需要对其进行分析。首先,检查服务器的硬件(内存、CPU、总线)及其 I/O 容量(磁盘、网络)是否足够。如果满足这些基本条件,则微调系统可能是有益的。
1.4 逐步微调 #
确保认真规划微调本身。请务必每次仅执行一个步骤。只有这样,才能测量所做的更改是起到了改善作用还是进一步产生了负面影响。应对每个微调活动进行足够长时间的测量,确保可以基于重要数据执行分析。如果您未测量到正面影响,请不要做出永久性更改。否则可能会在将来造成负面影响。