Linux下swap分区问题 汇总

Linux下swap分区多大才合适的问题探讨

确定占用 swap 的进程 shell 源码

-------------------------------------------------------------------------

参考:


Linux服务器性能指标-负载和swap

  https://www.jianshu.com/p/6aae1d580973

Linux交换分区利用率低

  https://zhuanlan.zhihu.com/p/584221980、

linux 关于swap使用过高排查

  https://www.cnblogs.com/JennyYu/p/16564978.html

参考 2:

Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)  https://blog.csdn.net/qq_23435961/article/details/131911839

Linux下swap分区问题 汇总

  https://blog.csdn.net/ken2232/article/details/134062288

Linux 使用 Swap分区 (***)

  https://blog.csdn.net/ken2232/article/details/134062033

-------------------------------------------------------------------------

Linux下swap分区多大才合适的问题探讨

  https://www.yii666.com/article/620927.html

在Red Hat Enterprise Linux中,以下是设置合适的交换分区大小的规则:网址:yii666.com<

物理内存交换分区(SWAP)
<= 4G至少4G
4~16G至少8G
16G~64G至少16G
64G~256G至少32G

确定占用 swap 的进程 shell 源码

  https://www.cnblogs.com/halberd-lee/p/12558209.html

近日,一客户的云服务器,发现swap使用率达到100% , 正常情况下swap分区使用率都很低或者几乎为0. 正常情况下,swap 耗尽说明物理内存已耗尽,进而使用大量的swap空间。

而实际上操作系统物理内存仍充足。那么肯定是有什么进程异常占用swap缓存并不释放。为了找到这个进程,写了下面一个脚本。记录在此,以备不时之需:

###############################################################################
# Author: halberd.lee@gmail.com
# Create: 2020-03-24
################################################################################

printf "%-20s\t%10s\t%-s\n" "PID" "Swap" "Proc_Name"
echo -e '------------------\t------------\t---------------------------'

for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]|grep -v ^1$`
do
    if [ -f /proc/"$pid"/smaps ]; then
     swap=$(grep Swap /proc/$pid/smaps | gawk '{ sum+=$2;} END{ print sum }')
     swap=${swap:=0}  # if swap's values is null then set swap=0
    fi
    proc_name=$(ps aux | grep -w "$pid" | grep -v grep | awk '{ for(i=11;i<=NF;i++){ printf("%s ",$i); }}')
    if [ "$swap" -gt 0 ];then
    echo -e "$pid\t${swap}\t$proc_name"
    fi

done | sort -k2 -n | gawk -F'\t' '{
 pid[NR]=$1;
 size[NR]=$2;
 name[NR]=$3;
}
END{
 for(id=1;id<=length(pid);id++)
 {
     if(size[id]<1024)
         printf("%-10s\t%15sKB\t%s\n",pid[id],size[id],name[id]);
     else if(size[id]<1048576)
         printf("%-10s\t%15.2fMB\t%s\n",pid[id],size[id]/1024,name[id]);
     else
         printf("%-10s\t%15.2fGB\t%s\n",pid[id],size[id]/1048576,name[id]);
 }
}'

Linux的swap参数合理值

  https://www.sohu.com/a/705722103_121432305

在Linux系统中,通常的建议是将交换分区(swap)的大小设置为物理内存(RAM)的1到2倍。这个范围可以提供足够的交换空间,以便在内存不足时支持系统运行。

具体而言,以下是一些常见的建议:

如果你的系统具有较少的物理内存(例如1GB至2GB),可以考虑将交换分区设置为物理内存大小的2倍。

如果你的系统具有较多的物理内存(例如4GB以上),通常将交换分区设置为物理内存大小的1到1.5倍可能足够。

但请注意,随着现代计算机内存容量的增加,对于高内存系统,例如具有16GB、32GB或更多内存的服务器,通常并不需要设置过大的交换分区。在这种情况下,可以考虑将交换分区设置为物理内存大小的1倍或稍微更少,或者完全禁用交换分区

需要根据特定的系统需求、应用程序要求和预期工作负载来评估交换分区的大小,并进行适当的调整。在设置交换分区大小之前,建议进行综合考虑,包括物理内存大小、工作负载特性以及可用磁盘空间。此外,还应该进行性能测试和监测,以确保交换分区的大小满足系统需求,并且不会对系统性能产生负面影响。

合理的Swap参数值取决于多个因素,包括系统的物理内存大小、应用程序的内存需求、负载类型以及性能优先级等。以下是一些常见的Swap参数值及其可能适用的场景:

1.不使用swap(禁用swap):

  • 物理内存足够不太可能出现内存不足的情况。
  • 对系统性能要求较高,需要最大化物理内存的利用率。

2.设置较小的swap空间:

  • 物理内存相对较大,但偶尔可能会有轻微的内存压力。
  • 希望保留一些swap空间以备不时之需。
  • swap空间大小可以设置为物理内存的一半更小

3.设置与物理内存相等的swap空间:

  • 物理内存大小较小,但不希望完全禁用Swap。
  • 可能会遇到内存压力,但希望在需要时仍有Swap可用。
  • swap空间大小可以设置为与物理内存相等。

4.设置较大的swap空间:

  • 物理内存非常有限,需要充分利用交换空间。
  • 系统需要处理大量内存密集型任务
  • swap空间大小可以设置为物理内存的两倍或更大。

需要注意的是,过度依赖swap可能导致性能下降,因为访问交换空间的速度远远低于物理内存。

因此,在调优swap参数时,需要根据具体的系统配置和使用情况进行评估和测试,以找到适合的配置。另外,还可以通过监控系统的内存使用情况和性能指标来进行调整和优化。

Linux服务器性能指标-负载和swap

  https://www.jianshu.com/p/6aae1d580973

Linux交换分区利用率低

  https://zhuanlan.zhihu.com/p/584221980、

linux 关于swap使用过高排查

  https://www.cnblogs.com/JennyYu/p/16564978.html

:https://www.sohu.com/a/705722103_121432305

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要扩展Linuxswap分区,可以按照以下步骤进行操作: 1. 确认当前系统中swap分区的情况,可以使用命令“swapon -s”查看。 2. 确认需要扩展的磁盘空间,可以使用命令“df -h”查看。 3. 关闭swap分区,可以使用命令“swapoff -a”关闭所有swap分区。 4. 使用fdisk或者parted等工具对需要扩展的磁盘进行分区。 5. 格式化新的swap分区,可以使用命令“mkswap /dev/sdX”(其中sdX为新分区的设备名)。 6. 启用新的swap分区,可以使用命令“swapon /dev/sdX”(其中sdX为新分区的设备名)。 7. 确认新的swap分区已经启用,可以使用命令“swapon -s”查看。 8. 修改/etc/fstab文件,将新的swap分区添加到开机自动挂载列表中,以便系统重启后自动启用新的swap分区。 以上就是扩展Linuxswap分区的步骤。需要注意的是,在进行分区操作时一定要小心,避免误操作导致数据丢失。 ### 回答2: Linux是一种成熟的操作系统,拥有广泛的用途,比如Web服务器,移动设备开发,桌面电脑等。但是,在Linux服务器运行时,会占用某些内存资源。当这些内存资源用尽时,您的服务器将无法为用户请求提供服务。为了解决这种情况,Linux提供了swap分区的概念。 swap分区Linux系统中的一种辅助性质量。它与操作系统的内存一起工作,扩展了可用内存。swap分区可以在磁盘驱动器的另一个分区中创建。如果您发现Linux服务器不能满足RAM(随机访问存储器)的需求,可以扩展swap分区。 扩展swap分区的第一步是检查您的系统是否有空闲的硬盘空间。您可以使用fdisk命令来查看您的硬盘分区。在fdisk命令中,您应该选择要查看的磁盘,然后使用"p"选项检查分区和可用空间。 然后,您需要使用mkswap命令来创建新的swap分区。该命令需要指定新swap分区的设备文件。您可以使用命令“cat /proc/swaps”来检查当前的swap分区。命令的输出应包括新的swap分区。 接下来,您需要将新的swap分区添加到swap设备列表中。这可以通过修改“/etc/fstab”文件来实现。您需要编辑此文件并添加一个新的条目,以将新的swap分区添加到swap设备列表中。要使更改生效,您需要重新启动服务器。 总之,扩展Linux服务器swap分区可以增加系统可用的内存。但是,使用swap分区的效率于使用RAM,因此您应该尽量减少使用swap。在扩展swap分区之前,应注意服务器硬盘上是否有足够的空间,并且仔细核对配置文件的更改,以避免错误和意外的系统崩溃。 ### 回答3: Linux系统中的swap分区是一种虚拟内存,它作为扩展内存使用。当系统的物理内存不足以支持运行的所有应用程序时,系统会将不常用的内存页交换到swap分区中,从而释放出物理内存并使更多的应用程序能运行。 在Linux中,swap分区可以在安装系统时预先分配,也可以后期进行扩展。当系统开始运行时,可以使用命令“free -h”查看swap分区的使用情况和大小。 要扩展swap分区,需要遵循以下步骤: 1、使用“sudo swapoff -a”命令关闭所有的swap分区,以便进行扩展。 2、使用“sudo fdisk /dev/sda”命令(假设第一块硬盘为/dev/sda)打开硬盘分区工具,进入分区编辑模式。 3、对需要扩展的分区进行编辑操作,并将其扩展到所需的大小。 4、使用“sudo mkswap /dev/sda3”命令(假设分区名为/dev/sda3)将分区格式化为swap分区。 5、使用“sudo swapon /dev/sda3”命令重新启用swap分区。 6、使用“sudo swapon -s”命令检查新的swap分区是否已经启用。 以上就是扩展linux swap分区的步骤,务必要小心操作,以免误操作导致不必要的损失。同时还要注意,过多使用swap分区可能会影响系统的性能,因此应该根据实际需要进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值