内存(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,需要重点关注一下内存是否充足。
刀客4 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!@cnbobo:E5可以不止200开. ...
刀客4 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!@JK:现在Windows客户端有检测了...
cnbobo4 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!@cnbobo:我E5 机器 200开,...
JK4 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!刀哥,现在用什么多开呀?
刀客4 天前
发表在:asu.edu 教育邮箱注册 [教育邮箱可以撸很多福利了]@野生奥特曼:感谢支持
野生奥特曼4 天前
发表在:asu.edu 教育邮箱注册 [教育邮箱可以撸很多福利了]按照教程申请成功
刀客6 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!@cnbobo:你可以自己尝试一下~😄
cnbobo6 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!1K开? 你说错了吧100开吧,
刀客7 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!@ayun:Google一下,有很多卖I...
ayun8 天前
发表在:Wipter - 全网首发 - 批量多开放大 - 保姆级教程!请问怎么弄大量的isp性质的ip呢