首页>>帮助中心>>美国云服务器Linux服务器内存占用高排查方法

美国云服务器Linux服务器内存占用高排查方法

2024/9/4 171次

美国云服务器Linux服务器内存占用高排查方法
当Linux服务器内存占用高时,可以按照以下步骤进行排查:
查看内存使用情况
使用free命令可以查看系统的内存使用情况,包括总内存、已用内存、空闲内存等信息。
有时系统内存占用高可能是由缓存和缓冲区所导致的。Linux系统会利用未分配的内存作为缓存和缓冲区,以提高文件访问速度。
# -h 人类可读的格式输出信息 free -h # 可能返回 total used free shared buff/cache available 内存: 15Gi 1.5Gi 12Gi 46Mi 1.4Gi 13Gi 交换: 2.0Gi 0B 2.0Gi
查看进程内存占用
使用top或htop命令可以查看系统进程的内存占用情况,按照内存使用量排序,找出消耗较大的进程。
htop命令可使用 yum install htop 进行安装
# 命令进入htop的交互界面通过按键组合进行交互 htop # top命令进入界面,按下大写字母 M 按照内存占用从高到低进行排序 top # 可能返回 top - 08:16:26 up 15 min, 1 user, load average: 0.00, 0.04, 0.05 Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 98.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2292 root 17 -3 1016716 40844 16904 S 1.3 2.0 0:09.14 YDService 1028 root 20 0 574288 19516 6152 S 0.0 1.0 0:00.23 tuned 1646 root 20 0 987628 19036 5824 S 0.0 0.9 0:00.29 YDLive 1709 root 20 0 622856 14296 3316 S 0.7 0.7 0:05.68 barad_agent 681 polkitd 20 0 614324 11116 4684 S 0.0 0.5 0:00.03 polkitd 1027 root 10 -10 61488 10136 8564 S 0.0 0.5 0:00.00 iscsid 1255 root 20 0 218528 9648 2984 S 0.0 0.5 0:00.07 rsyslogd 1708 root 20 0 164896 9496 2080 S 0.0 0.5 0:00.53 barad_agent
查看系统日志
查看系统日志可以帮助定位内存占用高的原因。
# journalctl命令查看系统日志,过滤关键词(“memory”或“oom”)查找相关日志 journalctl | grep -i memory # 内核日志包含有关内存使用情况 grep -i memory /var/log/messages
内存泄漏检测
如果怀疑有内存泄漏,可使用valgrind进行内存泄漏检测。
由于 valgrind 的工作原理,它可能会使程序的运行速度变慢,并且可能会增加程序的内存使用量。因此,通常只在开发和调试阶段使用 valgrind,而不是在生产环境中。
# 对程序 nginx 进行 --leak-check=full 启用完全的内存泄漏检测 valgrind --leak-check=full nginx
查看共享内存
如果共享内存占用较多,需要进一步检查是哪个进程在使用共享内存。
# 查看命令 cat /proc/meminfo | grep -i shmem # 返回结果中Shmem表示系统中当前使用的共享内存总量 Shmem: 49004 kB
查看不可回收的slab内存
查看不可回收的slab内存占用情况,如果这部分内存占用较高,可以使用slabtop命令查看是哪些slab占用大。
# 查看 cat /proc/meminfo | grep -i SUnreclaim # slabtop 命令用于实时显示内核的“slab”内存缓存信息 slabtop
检查大页内存
查看是否配置了内存大页。如果HugePages_Total输出非0,表示配置了内存大页。需要确认这些大页是业务自身配置还是其它恶意程序配置。
# 查看 cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize" # 可能返回 HugePages_Total: 0 Hugepagesize: 2048 kB
检查Swap分区
如果Swap分区使用过多,说明系统已经开始使用磁盘作为内存扩展,这可能会影响性能。
# 命令一 free # 命令二 swapon -s
分析内存使用情况
可以使用pmap命令分析特定进程的内存使用情况,或者使用perf命令进行更详细的性能分析。

购买使用一诺网络美国云服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。美国云服务器低至49元/月,购买链接:https://www.enuoidc.com/vpszq.html?typeid=3