专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
BioArt  ·  Immunity | ... ·  昨天  
BioArt  ·  Nat Chem Biol | ... ·  2 天前  
BioArt  ·  Neuron | ... ·  2 天前  
生信宝典  ·  国家生物信息中心数据资源部招聘启事 ·  2 天前  
51好读  ›  专栏  ›  生信菜鸟团

玩转服务器5—服务器资源查看

生信菜鸟团  · 公众号  · 生物  · 2024-11-26 22:14

正文

滴水穿石 非一日之功


对于使用我们共享服务器( 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 界面中,你可以使用以下快捷键来动态调整显示内容:

  • P :按 CPU 使用率排序。
  • M :按内存使用量排序。
  • T :按时间(CPU 时间)排序。
  • q :退出 top
  • k :杀死一个进程,输入进程 ID 后即可结束该进程。
  • r :调整进程的优先级(renice)。【日常使用基本用不到】
  • 1 :显示各个核心的使用情况

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。
  • 颜色代表的内存分配情况:
    • 绿色 :内存中正在使用的部分(应用程序和进程占用的内存)。
    • 蓝色 :缓存和缓冲区使用的内存(系统用来优化性能,存储常用数据)。
    • 黄色或橙色 :未使用的可用内存。






请到「今天看啥」查看全文