服务器突然变卡?程序动不动就崩溃?大概率是内存出了问题。可你知道怎么查看服务器内存吗?别慌,不管是 Linux 还是 Windows 系统,常用的查看命令都在这儿了,新手也能快速上手,一起往下看吧!
一、为啥要学查看服务器内存?这几个场景你肯定遇到过
我们在使用服务器时,经常会碰到这些情况:网站打开速度越来越慢,后台上传文件总失败,甚至远程连接都卡得不行。这时候,多数人会猜 “是不是内存满了?” 但光猜没用啊,得知道怎么看实际情况。
其实查看内存,不只是为了知道 “用了多少”,更重要的是能及时发现异常。比如某个程序偷偷占用了 90% 的内存,不及时处理,服务器随时可能崩。所以啊,学会查看服务器内存,是运维的基本功,新手也得掌握。
二、Linux 系统:这些命令,看完就能用
Linux 服务器用得最多,命令行操作是核心。下面这几个命令,都是日常运维高频用到的,记不住没关系,收藏起来慢慢看。
1. free 命令:一秒看内存概览
最简单的就是 free 命令了。打开终端,输入free
,回车,内存情况就出来了。不过默认单位是 KB,数字太大,看着眼晕。加上-h
参数就好多了,free -h
,会自动转换成 GB、MB,特别直观。
你看输出结果里,total(总内存)、used(已用)、free(空闲)、available(可用)这几列最关键。新手容易搞混 free 和 available,其实 available 才是真正能给新程序用的内存,因为系统会用一部分内存当缓存,available 已经把这部分算进去了,所以看 available 更靠谱。
2. top 命令:揪出内存 “小偷”
光知道总内存不够,还得知道哪个程序在 “吃” 内存。这时候 top 命令就派上用场了。输入top
,会出现实时刷新的界面,默认按 CPU 使用率排序。按一下大写的M
,就切换成按内存使用率排序,最上面的进程,就是内存消耗大户。
觉得 top 界面太素?可以装个 htop,功能更全,还能鼠标操作。CentOS 系统输入yum install htop -y
,Ubuntu 输入apt-get install htop -y
,装好后输入htop
就行,新手也能很快上手。
3. vmstat:看内存和硬盘的 “互动”
内存不够时,系统会把硬盘当临时内存(也就是 swap)。想知道内存和 swap 的互动情况,用 vmstat 命令。输入vmstat 2
,意思是每 2 秒刷新一次,里面的si(从 swap 读到内存的数据)和so(从内存写到 swap 的数据)要重点看。如果这两个数经常大于 0,说明内存可能不够用了,得想办法了。
4. 其他实用命令,按需选用
cat /proc/meminfo
:能看到超详细的内存参数,比如总内存、缓存大小。想只看总内存?输入cat /proc/meminfo | grep MemTotal
就行。ps -aux | grep 进程名
:单独查某个程序的内存占用,% MEM 那一列就是百分比,比如查 nginx 的内存,就输ps -aux | grep nginx
。
三、Windows 系统:图形化 + 命令行,两种方式任你选
Windows 服务器操作更简单,不想记命令?用图形化界面;想批量操作?用命令行,都行。
1. 任务管理器:鼠标点点就搞定
这是新手最爱用的方法。右键点任务栏,选 “任务管理器”,或者按Ctrl+Shift+Esc
,直接打开。
点 “性能” 选项卡,再点 “内存”,总内存“已使用”“可用内存” 一眼就能看到,下面还有实时曲线图,内存飙高的时候,曲线会往上冲,特别直观。
想找 “内存大户”?切到 “进程” 选项卡,点一下 “内存” 列,就能按内存使用率排序,哪个程序占得多,清清楚楚,不用记任何命令。
2. 命令行查看:适合远程或批量操作
有时候远程管理服务器,命令行更方便,这两个命令常用到。
- systeminfo:在 cmd 里输入
systeminfo
,回车,等一会儿会列出一堆系统信息。往下翻,找到 “总物理内存” 和 “可用物理内存”,就是你要的数。就是输出太多,找的时候得有点耐心。 - wmic:想查单条内存容量?输入
wmic memorychip get Capacity
,比如两条 8GB 的内存,会显示两个 8589934592(字节,换算成 GB 就是 8GB)。想查总内存和空闲?输入wmic os get TotalVisibleMemorySize,FreePhysicalMemory
,单位是 KB,除以 1024 再除以 1024,就是 GB 了。
四、新手必看:这些问题你可能会遇到
1. 内存使用率多少算正常?
一般来说,70% 以下比较安全。长期超过 80%,就得注意了,可能是程序有内存泄漏,也可能是内存真不够用了,该升级就升级。
2. Linux 里 free 显示空闲内存少,是内存不够吗?
不是哦。Linux 会把空闲内存用来缓存文件,提高速度,这部分叫 buff/cache,程序需要时会自动释放。所以看 available 更准,别被 free 吓到。
3. 怎么快速释放 Linux 的缓存内存?
可以用sync; echo 3 > /proc/sys/vm/drop_caches
,但别频繁用,释放缓存可能让程序暂时变慢,非必要不用。
五、Linux vs Windows:查看方式对比表
系统 | 查看方式 | 优点 | 缺点 | 适合场景 |
---|---|---|---|---|
Linux | free -h | 简单快,单位友好 | 信息少 | 快速看内存概览 |
Linux | top/htop | 能看进程,实时刷新 | 命令稍复杂 | 找内存占用高的程序 |
Windows | 任务管理器 | 图形化,操作简单 | 不适合脚本 | 新手、鼠标操作党 |
Windows | wmic 命令 | 精准,适合批量查 | 要记命令 | 远程管理、写脚本 |
小编的一点心得
其实查看服务器内存不难,新手别被命令吓到。刚开始可以从简单的来,比如 Linux 用free -h
,Windows 用任务管理器,先能看到内存情况再说。
用多了就会发现,这些命令其实有规律,比如带-h
参数的,大多是人性化显示单位。遇到不懂的输出,多试几次,结合实际场景想想,慢慢就熟了。
定期查看内存状态,能提前发现问题,服务器也能跑得更稳。要是操作中遇到其他问题,别慌,多查多练,谁都是从新手过来的,对吧?