HCRM博客

CentOS系统内存占用过高,该如何优化与排查?

在CentOS操作系统中,内存占用情况的监控和管理是系统性能优化的重要环节,了解和掌握如何查看和分析内存使用情况,对于确保系统稳定运行、提高应用性能具有重要意义,以下是一些常用的方法和工具,用于查看CentOS服务器的内存占用情况:

一、free命令

free命令是Linux系统中最常用的查看内存使用情况的命令之一,它可以显示系统的物理内存和交换内存的使用情况。

CentOS系统内存占用过高,该如何优化与排查?-图1
(图片来源网络,侵权删除)

基本用法

free [选项]

常用选项

b:以字节为单位显示内存使用情况。

k:以KB为单位显示内存使用情况(默认选项)。

m:以MB为单位显示内存使用情况。

g:以GB为单位显示内存使用情况。

CentOS系统内存占用过高,该如何优化与排查?-图2
(图片来源网络,侵权删除)

t:在输出的最后一行显示总内存使用情况。

s <间隔时间>:周期性地显示内存使用情况,间隔时间为指定的秒数。

c <次数>:指定周期性显示内存使用情况的次数。

h:以人类可读的方式显示内存使用情况,将数字转换为易于理解的单位(GB、MB、KB等)。

示例

以人类可读的方式显示内存使用情况
free h

输出示例如下:

CentOS系统内存占用过高,该如何优化与排查?-图3
(图片来源网络,侵权删除)
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.6G        5.5G         256M        413M        6.3G
Swap:            0B          0B          0B

解释:

total:总物理内存

used:已经使用的内存

free:没有使用的内存

shared:多进程共享内存

buff/cache:读写缓存内存

avAIlable:应用程序可用的物理内存

二、top命令

top命令是Linux系统中另一个非常强大的工具,用于实时监控系统的资源使用情况,包括CPU、内存、交换分区的使用情况,以及各个进程的详细信息。

基本用法

top [选项]

常用选项

d seconds:设置top命令的刷新间隔时间,默认为3秒。

u username:只显示指定用户名的进程信息。

p pid:只显示指定进程ID的信息。

n iterations:设置top命令的循环次数,即显示的次数。

s field:按指定字段对进程进行排序,默认按CPU使用率排序,可选字段包括pid、user、pr、ni、virt、res、shr、s、%cpu、%mem、time+、time、command。

o field:按指定字段对进程进行排序,与s参数不同的是,o参数可同时指定多个字段进行排序。

c:显示完整的命令行信息。

示例

默认显示系统资源使用情况
top

按下“Shift + m”可以按照内存占用排序,按下“q”退出top命令。

三、ps命令

ps命令用于显示当前系统的进程状态,提供了比top命令更为灵活的进程显示和过滤功能。

基本用法

ps [选项]

常用选项

a:显示所有进程,包括其他用户的进程。

u:以用户为主要输出格式,包括进程用户、进程ID、CPU使用率、内存占用等。

x:显示没有控制终端的进程。

e:显示所有进程。

f:显示完整格式的进程信息。

o format:自定义输出格式。

sort:按照指定字段排序。

示例

按内存使用排序显示前5个进程
ps aux sort=rss | head n 5

输出结果将包含以下详细信息:

USER:进程所属的用户

PID:进程ID

%CPU:%CPU占用率

%MEM:%内存占用率

VSZ:虚拟内存大小

RSS:物理内存大小

TTY:终端类型

四、htop命令

htop是一个更加强大和易用的系统监控工具,可以实时查看系统的内存使用情况,并以图形化的方式显示。

安装方法

如果服务器没有安装htop,可以通过以下命令进行安装:

sudo yum install htop

使用方法

htop

在htop界面中,可以通过颜色直观地了解内存占用情况,按下“F6”可以按照不同的资源进行排序,按下“q”退出htop命令。

五、vmstat命令

vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。

基本用法

vmstat [选项] [间隔时间] [次数]

常用选项

s:显示统计摘要。

r:显示内存相关统计信息。

n:禁用名称解析。

a:显示活动和非活动内存。

d:显示磁盘相关统计信息。

p:显示分页相关统计信息。

q:显示队列相关统计信息。

w:显示交换相关统计信息。

t:显示跟踪标志。

示例

显示内存相关统计信息
vmstat r

输出示例如下:

procs memoryswapiosystemcpu
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2097152 307200 1441920    0    0     32    128    30    15   0   0   0   0   0   0

解释:

procs:进程数量。

memory:内存使用情况。

swap:交换分区使用情况。

io:I/O操作统计。

system:系统相关信息。

cpu:CPU使用情况。

六、/proc/meminfo文件

查看/proc/meminfo文件也是一种获取内存使用情况的方法,该文件列出了所有你想了解的内存的使用情况,进程的内存使用信息也可以通过/proc/<pid>/statm/proc/<pid>/status来查看。

示例

cat /proc/meminfo | grep iE "HugePages_Total|Hugepagesize"

输出示例如下:

HugePages_Total:       1558
Hugepagesize:       2048 kB

解释:

HugePages_Total:大页的总数量。

Hugepagesize:每个大页的大小。

七、sar命令

sar是一个系统性能分析工具,可以提供有关系统资源使用情况的详细信息。

基本用法

sar [选项] [间隔时间] [次数]

常用选项

u:显示CPU使用情况。

r:显示内存使用情况。

b:显示I/O和传输速率。

q:显示队列长度和平均等待时间。

v:显示内核表格和任务信息。

d:显示块设备活动。

n DEV:显示网络接口流量。

W:显示交换空间使用情况。

示例

显示内存使用情况的基本统计信息,如内存使用率、空闲内存等。
sar r

输出示例如下:

01:00:00 PM kbmemfree kbmemused %memused
01:10:00 PM 152000 648000 79.60
01:20:00 PM 152000 648000 79.60
Average: 152000K, 648000K 79.60%

解释:

kbmemfree:空闲内存量(KB)。

kbmemused:已使用内存量(KB)。

%memused:内存使用率。

1、定期监控:建议定期使用上述工具监控CentOS服务器的内存使用情况,以便及时发现潜在的问题。

2、优化配置:根据监控结果,合理调整系统和应用的配置,以提高内存使用效率,调整MySQL等数据库的缓存设置,减少不必要的内存占用。

3、释放缓存:当发现cached区内存占用过高时,可以考虑手动释放缓存,但请注意,释放缓存可能会导致系统性能下降,因此应谨慎操作。

4、硬件升级:如果服务器内存长期处于高负荷状态,且无法通过优化配置解决,建议考虑升级硬件,增加物理内存。

5、日志记录:建议将重要的监控数据记录下来,以便后续分析和故障排查,可以使用脚本定期收集并存储这些数据。

6、自动化监控:为了减轻管理员的工作负担,可以考虑使用自动化监控工具(如Nagios、Zabbix等),实现对服务器资源的全面监控和管理。

7、文档记录:详细记录每次监控的结果和采取的措施,形成文档,便于后续参考和改进。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18731.html

分享:
扫描分享到社交APP
上一篇
下一篇