本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
提高 Linux 性能的系统管理员指南。
Linux 是一种多功能且功能强大的操作系统,可以对其进行调整以满足给定工作负载的特定需求。通过优化操作系统的性能,系统管理员可以充分利用 Linux 服务器的性能。
在本指南中,我们将介绍一些最常见的 Linux 性能优化技术。我们将从 Linux 内核及其体系结构的简要概述开始,然后转向与性能相关的内核参数。之后,我们将讨论一些常见的性能优化策略,包括针对 CPU、内存、I/O 和网络的优化策略。
Linux 内核是 Linux 操作系统的核心。它负责管理系统的所有资源,包括 CPU、内存、I/O 和网络。
内核是一个复杂的软件,很难理解它是如何工作的。然而,对内核架构的基本了解对于性能调优是必要的。
Linux内核分为几个不同的层。最底层是硬件,由CPU、内存、I/O设备等组成。在那之上是内核本身,它负责管理系统的所有资源。
内核分为几个不同的子系统,每个子系统负责管理特定类型的资源。比如内存管理子系统负责管理内存,网络子系统负责管理网络等等。
每个子系统都有自己的一组内核参数,可以对其进行调整以提高性能。在下一节中,我们将讨论一些用于性能调优的最重要的内核参数。
可以调整许多内核参数以提高性能。在本节中,我们将讨论一些最重要的问题。
swappiness 参数控制内核换出内存页面的积极程度。更高的值意味着内核将更积极地换出内存页面,这可以提高某些工作负载的性能。但是,它也可能导致其他工作负载出现性能问题。
默认值为 60,这是一个很好的起点。但是,值得尝试不同的值以查看最适合您的工作负载的值。
transparent_hugepage 参数控制内核是否使用透明大页面。透明大页面可以提高某些工作负载的性能,但它们也会导致其他工作负载出现性能问题。
默认值为 always,这意味着如果可用,内核将使用透明大页面。但是,值得尝试不同的值以查看最适合您的工作负载的值。
vm.dirty_ratio 参数控制在内核开始将其写出到磁盘之前可能脏的内存的最大百分比。更高的值意味着在内核开始将其写出到磁盘之前,更多的内存可能是脏的,这可以提高某些工作负载的性能。但是,它也可能导致其他工作负载出现性能问题。
默认值为 20,这是一个很好的起点。但是,值得尝试不同的值以查看最适合您的工作负载的值。
vm.dirty_background_ratio 参数控制在内核开始在后台将其写出到磁盘之前可能脏的内存的最大百分比。更高的值意味着在内核开始在后台将其写出到磁盘之前,更多的内存可能是脏的,这可以提高某些工作负载的性能。但是,它也可能导致其他工作负载出现性能问题。
默认值为 10,这是一个很好的起点。但是,值得尝试不同的值以查看最适合您的工作负载的值。
vm.dirty_expire_centisecs 参数控制在内核开始将页面写出到磁盘之前页面可能变脏的时间量(以百分之一秒为单位)。较高的值意味着在内核开始将页面写出到磁盘之前页面可能会变脏更长时间,这可以提高某些工作负载的性能。但是,它也可能导致其他工作负载出现性能问题。
默认值为 300,这是一个很好的起点。但是,值得尝试不同的值以查看最适合您的工作负载的值。
vm.dirty_writeback_centisecs 参数控制脏页写回到磁盘之间的时间量(以百分之一秒为单位)。更高的值意味着将脏页写回磁盘之间的时间更长,这可以提高某些工作负载的性能。但是,它也可能导致其他工作负载出现性能问题。
默认值为 500,这是一个很好的起点。但是,值得尝试不同的值以查看最适合您的工作负载的值。
有许多不同的技术可用于优化 CPU 性能。
一种常见的技术是使用 CPU 分析工具来识别代码中的热点。热点是比其他代码段执行得更频繁的代码段。通过识别和优化热点,可以实现显着的性能改进。
另一种常见技术是使用任务调度程序将工作负载平均分配给所有可用的 CPU。这可以通过减少资源争用来提高性能。
有许多不同的技术可用于优化内存性能。
一种常见的技术是使用内存分析器来识别过度使用的内存区域。通过识别和优化这些领域,可以实现显着的性能改进。
另一种常见技术是使用专为提高性能而设计的内存分配器。 glibc malloc 分配器是大多数工作负载的不错选择。
有许多不同的技术可用于优化 I/O 性能。
一种常见的技术是使用 I/O 调度程序以最大化性能的方式来调度 I/O 操作。截止日期 I/O 调度程序是大多数工作负载的不错选择。
另一种常见的技术是使用预读机制在需要之前将数据预取到内存中。这可以通过减少延迟来提高性能。
有许多不同的技术可用于优化网络性能。
一种常见的技术是使用网络调度程序以最大化性能的方式来调度网络流量。 pfifo_fast 网络调度程序是大多数工作负载的不错选择。
另一种常见技术是使用网络加速器将工作从 CPU 卸载到专用硬件设备。这可以通过降低 CPU 使用率来提高性能。
在本指南中,我们介绍了一些最常见的 Linux 性能优化技术。通过调整操作系统的性能,系统管理员可以充分利用 Linux 服务器的性能。
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/index
https://www.kernel.org/doc/Documentation/sysctl/vm.txt
https://www.kernel.org/doc/Documentation/filesystems/proc.txt
https://www.kernel.org/doc/Documentation/block/deadline-iosched.txt
https://www.kernel.org/doc/Documentation/block/cfq-iosched.txt