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"
fidone | 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