本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
在 Linux 环境中工作的开发人员应该了解内核如何管理内存和进程调度。本指南概述了 Linux 中的内存管理,重点是它与 IT 开发的关系。
Linux 内核负责管理内存和进程调度。它使用多种技术来优化内存使用和性能。
内存管理最重要的方面之一是页面缓存。页面缓存是一个空闲内存池,用于缓存磁盘中的数据。当进程需要从磁盘读取数据时,内核首先检查页面缓存,看数据是否已经在内存中。如果是这样,则从内存而不是磁盘读取数据,这要快得多。
页面缓存对性能很重要,但也可能导致问题。如果进程需要从磁盘读取大量数据,页面缓存会很快填满。这会导致系统内存不足并开始交换,这非常慢。
为了避免这个问题,内核使用了一种称为“swappiness”的技术。 Swappiness 是一个可调参数,它控制内核使用页面缓存的积极程度。值为 0 意味着内核永远不会交换,即使这意味着系统将耗尽内存。值为 100 意味着内核将始终交换,即使没有必要。
swappiness 的默认值为 60。这意味着内核将积极使用页面缓存,但仍会在必要时开始交换。
除了管理内存,Linux 内核还负责进程调度。进程使用多种算法进行调度,包括截止时间调度器、公平调度器和完全公平调度器。
deadline 调度程序是为需要在特定时间段内完成工作的实时进程而设计的。
公平调度器是为可以长时间不间断运行的批处理而设计的。
完全公平调度器是大多数 Linux 发行版中的默认调度器。它旨在为所有进程提供对 CPU 的公平访问。
内存管理和进程调度是 Linux 开发的重要方面。开发人员应该了解内核如何管理内存和进程调度,以优化性能并避免出现问题。