对于使用我们共享服务器(
2024的共享服务器交个朋友福利价仍然是800
)的用户,由于大家拿到的服务器账号是共享的,所以说你并不能像使用自己服务器那样自由自在,在提交任务时要留意一下服务器的整体使用情况,不能占用过多线程或者内存,从而影响其余用户的使用。那么这时候就要掌握一些服务器资源查看的技巧。比如top、htop命令。
言简意赅版:
utop
utop
是我们服务器管理员自己写的一个用户资源统计的小脚本。如果觉得top命令的结果太复杂,你可以使用utop简单查看服务器的使用情况。保证自己账号的 Cpu_sum(线程)尽量不超过 48、Mem_sum (内存)不超过200G即可。当然短时间的超限可以理解。但是如果长时间占用较多资源,就会被监控程序kill掉进程。
utop结果
top
top
是一个常用的 Linux 命令,用于显示当前系统的资源使用情况,包括 CPU、内存、进程等信息。当在终端输入
top
命令时,系统会显示一个动态的进程列表,并实时更新这些进程的资源使用情况。
基本用法
top # -u : 指定查看的用户 # -p :显示指定进程的详细信息 # -d :指定更新的间隔时间(秒)。例如,`top -d 5` 每5秒更新一次。 # -n :指定 `top` 输出的更新次数。例如,`top -n 10` 会更新10次后退出。
交互式操作
:
在
top
界面中,你可以使用以下快捷键来动态调整显示内容:
k
:杀死一个进程,输入进程 ID 后即可结束该进程。
r
:调整进程的优先级(renice)。【日常使用基本用不到】
top命令虽然输出了很多参数,不过真正的服务器负载情况我们要综合其他参数一起看。
top输出
下面我们逐行看一下默认输出内容:
第一行信息:
top - 10:31:30 up 75 days, 23:37, 40 users, load average: 192.62, 183.96, 179.73# top:当前时间 # up:系统运行时间,表明目前系统已运行 75 天 23 小时 37 分钟 # users:当前有多少用户 # load average:分别是过去1分钟,5分钟,15分钟的平均负载。也可以看出系统负载是上升、平稳、下降的趋势,当这个值接近或超过CPU核心数,表示系统的负载较重,可能有大量的进程正在等待CPU资源。当数值大于 CPU 核心数的2-3倍,系统就可能出现CPU瓶颈或I/O瓶颈,导致响应变慢。
第二行信息:
Tasks: 3468 total, 21 running, 3438 sleeping, 6 stopped, 3 zombie# Tasks:当前有多少进程 # running:正在运行的进程 # sleeping:正在休眠的进程 # stopped:停止的进程 # zombie:僵尸进程。这些进程已经结束,但它们的父进程尚未清理它们的资源
第三行信息:
%Cpu(s): 55.4 us, 5.1 sy, 0.0 ni, 39.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st# us(user): 用户进程占CPU的使用率。CPU 55.4% 的时间用于用户空间的进程执行,即应用程序和用户代码。 # sy(system): 系统进程占CPU的使用率。CPU 5.1% 的时间用于内核空间的操作。 # ni(nice): CPU 0.0% 的时间用于用户空间的进程,但这些进程的优先级是调整过的。 # id(idle): 空闲CPU占用率。CPU 39.5% 处于空闲状态,表示还有大量的 CPU 时间未被使用。 # wa(waiting for I/O): 进程因为等待 I/O 操作而导致的 CPU 等待的占比 # hi(hardware interrupt): 系统处理硬件中断所消耗的CPU时间占比 # si(software interrupt): 系统处理软中断所消耗的CPU时间占比 # st(steal): 在虚拟机情况下才有意义,因为虚拟机下 CPU 也是共享物理 CPU 的,所以这段时间表明虚拟机等待 hypervisor 调度 CPU 的时间,也意味着这段时间 hypervisor 将 CPU 调度给别的 CPU 执行,这个时段的 CPU 资源被“stolen”了。
第四行&第五行
MiB Mem : 2051692.+total, 399404.8 free, 812811.2 used, 839476.3 buff/cache MiB Swap: 2048.0 total, 0.2 free, 2047.8 used. 1228294.+avail Mem# total:内存总量,总内存为 2,051,692 MiB(约 2 TB) # free:空闲内存,当前有 399,404.8 MiB 空闲内存,约占总内存的 19% # used:使用的内存,当前使用了 812,811.2 MiB 内存,约占总内存的 40% # buffer/cache:写缓存/读缓存。有 839,476.3 MiB 内存用于缓存和缓冲区。这部分内存通常会在需要时被释放 #Swap - 交换空间(swap)总量为 2 GB - 剩余的交换空间,0.2 MiB。 - 已使用的交换空间,2047.8 MiB - avail Mem :表示在不进行交换的情况下,可以给新开启的程序多少内存空间,大致和 free + buff/cached 相当。也可以间接说明 free + buffers + cached Mem 是真正可用的物理内存。目前系统可用内存约为 1,228,294 MiB
具体进程
第五行后面就是每个进程的资源占用列表
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 660870 t160527 20 0 133.1g 2.7g 22068 R 4605 0.1 5893:08 R # PID: 进程ID # USER:进程所有者 # PR:进程优先级 # NI:nice值,其取值范围是-20 至 19,负值表示高优先级,正值表示低优先级 # VIRT:进程使用的虚拟内存总量。
# RES:进程使用的、未被换出的物理内存大小。 # SHR:共享内存大小 # S:进程状态 # %CPU:CPU时间占用(从上次更新到现在) # %MEM:进程使用的物理内存百分比 # TIME+:进程使用的CPU时间总计 # COMMAND:进程命令
htop
htop
是
top
命令的一个增强版本,提供了一个更加直观和交互性的界面,用于实时监控 Linux 系统的资源使用情况。相比于top,htop具有以下特性:
彩色显示
:
htop
使用颜色来区分不同类型的资源使用情况(如 CPU 使用、内存使用、交换空间使用等),使其更加直观易读。
进程树形结构
:显示进程时,
htop
支持以树形结构展示进程之间的父子关系,这对于查看进程的层次关系非常有用。
交互式操作
:用户可以通过键盘快捷键进行操作,例如结束进程、调整进程优先级(renice)、搜索进程等,操作非常方便。而且还支持出表选中操作
可定制化界面
:可以自定义显示的字段和排序方式,使得用户能够根据自己的需求来调整界面布局。
基本用法
命令行选项
-C --no-color ##使用单色的配色方案 -d --delay=DELAY ##设置延迟更新时间,单位秒 -F --filter=FILTER ##跟踪进程。如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用;通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。 -h --help ##帮助文档 -H --highlight-changes[=DELAY] ##高亮新的进程 -M --no-mouse ## 禁用鼠标(Disable the mouse) -p --pid=PID[,PID,PID...] ## 仅显示指定PID的进程 -s --sort-key=COLUMN #按某一列来排序 -t --tree #显示树形结构 -u --user[=USERNAME] #显示指定用户 -V --version #显示版本信息(Print version info)
交互式命令
上下键或PgUP, PgDn #选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程 Space #标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程 U #取消标记所有进程 s #选择某一进程,按s:用strace追踪进程的系统调用(要先安装strace) l #显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件 I #倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然 +, - #在树形模式下,展开或折叠子树 a (在有多处理器的机器上) #设置 CPU affinity: 标记一个进程允许使用哪些CPU u #显示特定用户进程 M #按Memory使用排序 P #按CPU使用排序 T #按Time+使用排序 K #显示/隐藏内核线程 H #显示/隐藏用户线程 F #跟踪进程 Ctrl-L #刷新 Numbers #PID 查找: 输入PID,光标将移动到相应的进程上
F1~F10的功能及对应的快捷键
功能键
快捷键
中文说明
F1
h,?
查看htop使用说明
F2
S
htop设置
F3
/
搜索进程
F4
\
增量进程过滤器
F5
t
显示树形结构
F6
选择排序方式
F7
[
可减少nice值,这样就可以提高对应进程的优先级
F8
]
可增加nice值,这样就可以降低对应进程的优先级
F9
k
杀死进程
F10
q
退出htop
界面介绍
区域一 :CPU 使用情况
默认设置显示界面,CPU资源使用会占用大部分显示界面,如果屏幕小的话,会占满整个屏幕,这里我们进行了显示界面的设置,缩小了CPU部分的显示。
每个编号(1-256)对应一个逻辑 CPU(图示系统配置为 128 核 256 线程),每个 CPU 的使用率以彩色数字和百分比显示。
颜色表示不同的 CPU 负载类型
:
红色
:用户进程占用的 CPU(
us
,用户态运行的非内核进程)。
绿色
:系统进程占用的 CPU(
sy
,系统内核态运行的进程)。
蓝色
:低优先级任务(
ni
,运行于较低优先级的任务)。
橙色或亮黄色
:I/O 等待(
wa
,CPU 等待磁盘或网络 I/O)。
灰色或空白
:空闲时间(
id
,CPU 没有任务运行时)。
默认显示
修改后的显示
区域二:内存、Swap使用情况
Mem
:
数字显示:
890G/1.96T
,表示总内存为 2TB,已用 890GB。
绿色
:内存中正在使用的部分(应用程序和进程占用的内存)。
蓝色
:缓存和缓冲区使用的内存(系统用来优化性能,存储常用数据)。