linux系统交换空间过大
交换空间是每个人似乎都知道的事情之一,我也不例外。 我所有的sysadmin朋友都有他们的意见,大多数发行版也提出了建议。
这考虑到以下事实:RAM内存大小通常很小,并且为交换空间分配2倍以上的RAM不会提高性能。 由于有超过两倍的RAM用于交换,因此大多数系统花费的时间比执行有用的工作还要多。
RAM内存已经变得非常便宜,现在许多计算机都具有数十GB的RAM。 我的大多数较新的计算机至少具有4GB或8GB的RAM,其中两个具有32GB的内存,而我的主工作站具有64GB的内存。 当处理具有大量RAM的计算机时,交换空间的限制性能因素远低于2倍乘数。 因此,建议的交换空间被认为是系统内存工作负载而不是系统内存的功能。
表1提供了Fedora Project建议的交换分区大小,具体取决于系统中的RAM数量以及是否要有足够的内存供系统Hibernate。 为了Hibernate,您需要在自定义分区阶段中编辑交换空间。 “推荐的”交换分区大小是在默认安装过程中自动建立的,但我通常发现它太大或太小而无法满足我的需求。
Fedora 28安装指南定义了有关交换空间分配的当前思路。 请注意,Fedora的其他版本和其他Linux发行版可能略有不同,但这与Red Hat Enterprise Linux用于其建议的表相同。 自Fedora 19以来,这些建议未曾更改。
系统中安装的RAM量 | 推荐交换空间 | Hibernate时建议的交换空间 |
---|---|---|
≤ 2GB | 2X RAM | 3X RAM |
2GB – 8GB | = RAM | 2X RAM |
8GB – 64GB | 4G至0.5X RAM | 1.5X RAM |
>64GB | 最低4GB | 不建议Hibernate |
表1:Fedora 28文档中建议的系统交换空间。
表2包含了根据我多年来在多个环境中的经验提出的建议。
系统中安装的RAM量 | 推荐交换空间 |
---|---|
≤ 2GB | 2X RAM |
2GB – 8GB | = RAM |
> 8GB | 8GB |
表2:我推荐的系统交换空间。
这些表可能都不适合您的环境,但是它们将为您提供一个起点。 主要考虑因素是,随着RAM数量的增加,添加更多的交换空间只会导致在交换空间接近被填满之前就发生抖动。 如果虚拟内存太少,则应尽可能增加RAM,而不要增加交换空间。
为了测试Fedora(和RHEL)的交换空间建议,我在两个最大的系统(具有32GB和64GB RAM的系统)上使用了建议的0.5 * RAM 。 即使运行四个或五个VM,LibreOffice,Thunderbird,Chrome Web浏览器,多个终端仿真器会话,Xfe文件管理器以及许多其他后台应用程序中的多个文档,我唯一看到交换使用的还是备份期间我已经安排在每天凌晨2点左右。 即使这样,交换使用量也不会超过16MB,是兆字节 。 这些结果适用于负载很大的系统,不一定适用于您的实际环境。
我最近在Opensource.com上与其他一些社区主持人进行了一次有关交换空间的对话, 克里斯托夫 ·肖特(Chris Short)是我这个杰出而才华横溢的团队的朋友之一,向我指出了一篇旧文章 ,他建议使用1GB的交换空间。 。 本文写于2003年,后来他告诉我,他现在建议零交换空间。
所以,我们想知道,您的想法是什么? 您对系统上的交换空间有何建议或使用?
linux系统交换空间过大