看懂CentOS资源使用状况,5分钟新手站长linux命令教程,在建站领域,大致分为两派,一种是基于虚拟主机建站,这种方式建站我们一般不怎么关注系统资源使用状态;另外一种是自己买国外便宜VPS来建站,很多站长都喜欢购买搬瓦工的vps安装Centos系统的VPS。
CentOS资源使用状况
网站建好后,过了一段时间发现网站访问较慢时,或许你想监控一下到底是哪些进程或程序比较占用VPS的资源,本文就基于Centos系统分享一下如何监控VPS系统资源使用状况的知识,要监控Centos系统的资源状况,我们肯定得通过一些命令来达成目的,具体如下。
详解CentOS的top命令
CentOS是Linux系统的发行版之一,要执行这些命令您需要通过SSH客户端软件连接到服务器上,SSH客户端你可以使用Xshell,PuTTY这两个客户端,本文中截图是基于PuTTY执行时所产生,本站长之前也是使用Xshell这个客户端,但奈何是破解版,已经失效,转而使用PuTTY了,满足日常使用就可以了,如果你懒得找它的下载程序,本文最后提供了一个百度网盘分享链接,可以下载安装使用。
首先我们来看看这个top命令,它可以用来监控linux的系统状况,如cpu、内存,swap交换分区的使用状况,下面详解红色框住部分的各个数据的含义。
第一行
- 17:40:58 当前系统时间
- 7 days, 35min 系统已经运行了7天6小时2935分钟(在这期间没有重启过)
- 2 users 当前有2个用户登录系统
- load average: 1.44, 0.93, 0.64 load average后面的三个数分别是1.44分钟、0.93分钟、0.64分钟的负载情况。
- load average 数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑 CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:进程(Task)
系统现在共有115个进程,其中处于运行中的有2个,113个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。
第三行:cpu状态
- 36.5% us 用户空间占用CPU的百分比。
- 3.7% sy 内核空间占用CPU的百分比。
- 0.0% ni 改变过优先级的进程占用CPU的百分比
- 54.8% id 空闲CPU百分比
- 0.0% wa IO等待占用CPU的百分比
- 0.0% hi 硬中断(Hardware IRQ)占用CPU的百分比
- 0.0% si 软中断(Software Interrupts)占用CPU的百分比
- 5.0%st:虚拟机占用百分比
- 在这里CPU的使用比率和windows概念不同,我们所说的操作系统(centos/ubuntu)是基于Linux内核的,也就是一个操作系统由内核和用户空间,区别于我们所熟悉的Windows。
第四行:内存状态
- 1882224k total 物理内存总量(2GB)
- 140836k free 空闲内存总量(137MB)
- 1386116k used 使用中的内存总量(1.32GB)
- 355272k buffers 缓存的内存量 (346M)
第五行:swap交换分区
- 2621432k total 交换区总量(2.4GB)
- 723660k used 使用的交换区总量(706M)
- 1897772k free 空闲交换区总量(1.8GB)
- 331340k cached 缓冲的交换区总量(323MB)
这里说明的内存依然区别于windows的内存概念,如果按windows的方式此台服务器1G的内存总量只剩下452M的可用内存,而且我并没有启动什么程序,显然是不科学的,Linux的内存管理有其特殊性,比较复杂,需要我们慢慢去学习。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存: 140836+355272+331340= 827448kb=808MB 。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第六行是空行
第七行以下
第7行以下是各个进程的列表,各个列头的含义如下:
- PID: 进程id
- USER: 进程所有者
- PR: 进程优先级
- NI: nice值。负值表示高优先级,正值表示低优先级
- VIRT: 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES: 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR: 共享内存大小,单位kb
- S: 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU: 上次更新到现在的CPU时间占用百分比
- %MEM: 进程使用的物理内存百分比
- TIME+: 进程使用的CPU时间总计,单位1/100秒
- COMMAND: 进程名称(命令名/命令行)
多核CPU如何查看?
在top基本视图中,按键盘数字1,可监控每个逻辑CPU的状况:
top命令使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
参数说明
- d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
- p 通过指定监控进程ID来仅仅监控某个进程的状态。
- q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
- s 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 - i 使top不显示任何闲置或者僵死进程。
- c 显示整个命令行而不只是显示命令名
进程字段排序
- 敲击键盘b(打开/关闭加亮效果),top的视图变化如下:
我们发现进程17085和3858的www进程被加亮了,一般为运行状态(runing)的进程才被加亮,可以通过敲击y键关闭或打开运行态进程的加亮效果。 在链盘上按 x 键打开排序加亮效果,关闭也是按 x 键,按后top的视图变化如下:
可以看到,top默认的排序列是%CPU,即按CPU使用率排序,用得越多排在越前面。如果想按进程占用内存越大排越前面该如何操作呢?其实很简单,只需要按快捷键即可,您可以通过同时按住【shift + >】或【shift + <】可以向右或左改变排序列,操作时你可以先按住shift键(上档键)然后再按下右下角的【<】键或【>】键,下图是按一次shift + >的效果图:
增加进程显示字段
1、敲击【F】键,top进入另一个视图,在这里您可以自定义显示列:
看上方的提示:
Fields Management for window 1:Def, whose current sort field is %MEMNavigate with Up/Dn, Right selects for move then <Enter> or Left commits,’d’ or <Space> toggles display, ‘s’ sets sort. Use ‘q’ or <Esc> to end!
我们可以使用方向键,即带上下左右箭头的键来移动方向,然后通过按【D】键或者【Space(空格)】来选中,最后按【ESC】退出就可以看到在top视图里面已经显示您相显示的列了。
上图列出了所有可在top基本视图中显示的进程字段,可以通过上下箭头键来移动显示列。在本例中,江湖人士选中的列如下:
上图操作后,直接按【ESC】键退出,别告诉我您不知道啥是【ESC】键,键盘左上角找。
top命令的补充
top命令是Linux上进行系统监控的首选命令,站长们最好要熟悉哟,top命令的监控最小单位是进程,所以看不到程序的线程数和客户连接数,通常可以ps和netstate两个命令来补充top的不足。
内存使用状况命令
查看内存使用通过:free -m 即可。
以上就是关于top命令的详细解读,建议站长们在排查您的VPS服务器或者docker容器时可以派上用场。
PuTTY下载
这里提供了PuTTY的百度网盘下载地址,需要的朋友可以登录后下载。