内存(RAM)是系统用来存储和访问正在运行程序的数据和指令的地方,其性能直接影响系统的响应速度、多任务处理能力和整体效率。内存不足时系统会出现OOM(内存溢出),导致应用程序被系统kill,还存在数据丢失的风险。
内存重要性
1、系统响应速度
快速的内存访问可以显著减少程序的加载时间和响应时间。
2、多任务
每个进程都需要一定数量的内存来执行。如果内存不足,系统可能会使用交换空间(swap),这会导致性能显著下降。
3、缓存和缓冲区
Linux使用内存作为文件系统缓存和缓冲区,以加快数据读写操作。当系统有足够的内存时,更多的数据可以被缓存,从而减少磁盘I/O操作,提高文件访问速度。
4、虚拟化环境
如果主机系统的内存不足,虚拟机的性能将受到严重影响。充足的内存可以确保虚拟机之间不会因资源竞争而导致性能下降。
常用的内存分析工具
free
free命令会显示空闲、已用的物理内存、虚拟的交换内存以及系统核心使用的缓冲区等信息,其数据来源于/proc/meminfo文件。
free -h
total:表示总的内存或交换空间大小
used:表示已经被使用的内存或交换空间大小。
free:表示尚未被使用的内存或交换空间大小,即空闲内存。
shared:表示被 tmpfs(基于内存的文件系统)使用的内存量,
这部分内存被多个进程共享。
buff/cache:表示被缓冲区和缓存使用的内存大小。
available:表示应用程序可用的内存量。
vmstat
vmstat是一个用于显示关于系统虚拟内存、进程、CPU活动等的统计信息工具。
# 每5秒 + time 统计信息
vmstat 5 -t
# memory
swpd:虚拟内存已使用的大小
free:空闲的物理内存的大小
buff:缓冲区内存用于存储原始磁盘块的临时数据,以便快速访问。
cache:缓存主要用于存储从文件系统读取的文件内容和元数据,
而不是原始磁盘块。
# swap
si:每秒从磁盘读入虚拟内存的大小
so:每秒虚拟内存写入磁盘的大小
top
top是一个用于监视Linux系统进程和整体性能的工具,即时显示进程的动态信息,详见之前的文章介绍。
# 查看指定进程及其所有线程的信息
top -H -p 3120
%MEM:进程使用的物理内存百分比。
VIRT:进程使用的虚拟内存总量,单位kb。
SWAP:进程使用的虚拟内存中,被换出的大小,单位kb。
RES:进程使用的、未被换出的物理内存大小,单位kb。
SHR:共享内存大小,单位kb。
总结
服务器出现运行速度慢、进程无法启动、swap空间使用率较高时,可能存在内存不足的问题。此时,使用上述命令去排查问题,并分析系统日志有没有OOM、内存泄漏相关的信息。
使用vmstat命令时,若swp、si、so数值大于0,需要重点关注一下内存是否充足。
刀客11 天前
发表在:挂机网赚 - Wipter@大礼:我回头看看,可能先弄✈群先,感谢...
大礼11 天前
发表在:挂机网赚 - Wipter没事的,群名不那么直接就行了
刀客11 天前
发表在:挂机网赚 - Wipter@大礼:🐧群,这种网赚挂机,容易和谐
大礼12 天前
发表在:挂机网赚 - Wipter搞个qq群吧,后期加群限制下就行了,tg...
刀客12 天前
发表在:挂机网赚 - Wipter@大礼:迟一点吧,我到时候弄个tg群
大礼13 天前
发表在:挂机网赚 - Wipter@大礼:搞一个qq群,交流交流
刀客14 天前
发表在:挂机网赚 - Wipter@大礼:暂时木有哦~
大礼14 天前
发表在:挂机网赚 - Wipter有没有群,交流交流
刀客23 天前
发表在:挂机网赚 - ProxyRack@cnbobo:目前我在Windows跟...
cnbobo23 天前
发表在:挂机网赚 - ProxyRack刀哥,proxyrack项目目前有投入多...