Debian 10 系统添加 swap
时间:2021-12-18 16:57 来源:linux.it.net.cn 作者:IT
参考:https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-debian-10
警告:虽然通常建议对使用传统旋转硬盘驱动器的系统进行交换,但对 SSD 使用交换可能会导致硬件随着时间的推移出现退化问题。出于这个考虑,我们不建议在任何其他使用 SSD 存储的提供商上启用交换。这样做会影响您和您邻近的底层硬件的可靠性。本指南供可能在其他地方使用旋转磁盘系统的用户参考。如果您需要提高服务器的性能,我们建议升级您的硬件配置。这通常会带来更好的结果,并降低导致可能影响您的服务的硬件问题的可能性。
步骤 1 – 检查系统的交换信息
$ sudo swapon --show
$ free -h
步骤 2 – 检查硬盘分区上的可用空间
$ df -h
步骤 3 – 创建交换文件
创建交换文件的最佳方式是使用fallocate程序。此命令立即创建指定大小的文件。
$ sudo fallocate -l 1G /swapfile
$ ls -lh /swapfile
步骤 4 – 启用交换文件
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon --show
$ free -h
步骤 5 – 使交换文件永久化
备份/etc/fstab文件以防万一出现问题:
$ sudo cp /etc/fstab /etc/fstab.bak
通过键入以下内容将交换文件信息添加到/etc/fstab文件末尾:
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
第 6 步 – 调整您的交换设置(在您了解相关参数之前,请谨慎操作!)
调整 Swappiness 属性
swappiness参数配置您的系统将数据从 RAM 交换到交换空间的频率。这是一个介于 0 和 100 之间的值,表示百分比。
值接近于零时,除非绝对必要,否则内核不会将数据交换到磁盘。请记住,与交换文件的交互是“昂贵的”,因为它们比与 RAM 的交互花费的时间要长得多,并且可能导致性能显著降低。告诉系统不要过多依赖交换通常会使您的系统更快。
接近 100 的值将尝试将更多数据放入交换区,以保持更多 RAM 空间可用。根据您的应用程序的内存配置文件或您使用服务器的目的,在某些情况下这可能会更好。
我们可以通过键入以下内容来查看当前的 swappiness 值:
$ cat /proc/sys/vm/swappiness
对于台式机,swappiness 设置为 60 是一个不错的值。对于服务器,您可能希望将其移近 0。
此设置将持续到下一次重新启动。我们可以通过将以下行添加到我们的/etc/sysctl.conf文件中,在重新启动时自动设置此值:
vm.swappiness=10
调整缓存压力设置
您可能想要修改的另一个相关值是vfs_cache_pressure. 此设置配置系统将选择在多大程度上缓存inode和dentry信息而不是其他数据。
基本上,这是关于文件系统的访问数据。这通常是非常昂贵的查找和非常频繁的请求,因此对您的系统进行缓存是一件极好的事情。您可以通过proc再次查询文件系统来查看当前值:
$ cat /proc/sys/vm/vfs_cache_pressure
由于它当前的配置(默认值:100),我们的系统从缓存中删除 inode 信息太快了。我们可以通过键入以下内容将其设置为更保守的设置(例如:50):
$ sudo sysctl vm.vfs_cache_pressure=50
同样,这仅对我们当前的会话有效。我们可以通过将它添加到我们的配置文件中来改变它,就像我们在 Swappiness 设置中所做的那样:
vm.vfs_cache_pressure=50
总结
遵循本指南中的步骤将为您提供一些交换空间,否则会导致内存不足异常。交换空间对于避免其中一些常见问题非常有用。
如果您遇到 OOM(内存不足)错误,或者您发现您的系统无法使用您需要的应用程序,最好的解决方案是优化您的应用程序配置或升级您的服务器。
(责任编辑:IT)
步骤 1 – 检查系统的交换信息
步骤 2 – 检查硬盘分区上的可用空间
步骤 3 – 创建交换文件创建交换文件的最佳方式是使用fallocate程序。此命令立即创建指定大小的文件。
步骤 4 – 启用交换文件
步骤 5 – 使交换文件永久化备份/etc/fstab文件以防万一出现问题:
通过键入以下内容将交换文件信息添加到/etc/fstab文件末尾:
第 6 步 – 调整您的交换设置(在您了解相关参数之前,请谨慎操作!)调整 Swappiness 属性swappiness参数配置您的系统将数据从 RAM 交换到交换空间的频率。这是一个介于 0 和 100 之间的值,表示百分比。 值接近于零时,除非绝对必要,否则内核不会将数据交换到磁盘。请记住,与交换文件的交互是“昂贵的”,因为它们比与 RAM 的交互花费的时间要长得多,并且可能导致性能显著降低。告诉系统不要过多依赖交换通常会使您的系统更快。 接近 100 的值将尝试将更多数据放入交换区,以保持更多 RAM 空间可用。根据您的应用程序的内存配置文件或您使用服务器的目的,在某些情况下这可能会更好。 我们可以通过键入以下内容来查看当前的 swappiness 值:
此设置将持续到下一次重新启动。我们可以通过将以下行添加到我们的/etc/sysctl.conf文件中,在重新启动时自动设置此值:
调整缓存压力设置您可能想要修改的另一个相关值是vfs_cache_pressure. 此设置配置系统将选择在多大程度上缓存inode和dentry信息而不是其他数据。 基本上,这是关于文件系统的访问数据。这通常是非常昂贵的查找和非常频繁的请求,因此对您的系统进行缓存是一件极好的事情。您可以通过proc再次查询文件系统来查看当前值:
由于它当前的配置(默认值:100),我们的系统从缓存中删除 inode 信息太快了。我们可以通过键入以下内容将其设置为更保守的设置(例如:50):
同样,这仅对我们当前的会话有效。我们可以通过将它添加到我们的配置文件中来改变它,就像我们在 Swappiness 设置中所做的那样:
总结遵循本指南中的步骤将为您提供一些交换空间,否则会导致内存不足异常。交换空间对于避免其中一些常见问题非常有用。 如果您遇到 OOM(内存不足)错误,或者您发现您的系统无法使用您需要的应用程序,最好的解决方案是优化您的应用程序配置或升级您的服务器。 (责任编辑:IT) |