【Linux】服务器常用指令和解读

目前的深度学习框架TensorFlow、PyTorch等都需要GPU来加速计算,查看CPU、GPU、内存信息对程序调试等非常重要。

Linux一切皆文件。Linux的所有内容都是以文件的形式存储和管理的,包括一般文件、目录文件、外接设备(如键盘、硬盘、打印机等)、套接字等。其利弊都比较明显,好处是开发者只需要一套API和开发工具就可以调用Linux系统中的资源;坏处是使用任何外接硬件设备都必须要和某一目录挂载。

0. 常用工具命令

0.0 关机和重启(shutdown -r, -h)

users  # 显示当前登录系统的所有用户的用户列表
shutdown -r now  # 立刻重新启动(reboot)
shutdown -r 5  # 5min后重新启动
shutdown -h now  # 立刻关机(halt)
shutdown -h 5  # 5min后关机

0.1 帮助(--help)

ifconfig --help  # 配置网络接口 帮助
shutdown --help  # 关机和重启命令帮助

0.2 说明书(man)

man ifconfig  # 查看命令说明书

1. CPU

1.1 CPU架构(物理CPU-CPU核-逻辑CPU)

(1)多个物理CPU,CPU通过总线通信;

(2)多核CPU,不同的Core通过L2 cache通信,存储和外设依然通过总线通信;

(3)多核超线程,每个Core还分为两个逻辑处理单元,共同分享一个Core的资源。

1.2 查看CPU信息

逻辑CPU数量=物理CPU个数×单个CPU能处理的Core数×2(若支持HT)。即:若CPU支持了Intel超线程技术,还可以在逻辑上多一倍的CPU Core数。

# 查看物理CPU:插槽上的CPU个数
cat /proc/cpuinfo | grep "physical id" |sort | uniq |wc -l
​
# 查看每个物理CPU上的Core数
cat /proc/cpuinfo | grep "cores" | uniq
​
# 查看逻辑CPU的个数
cat /proc/cpuinfo | grep "processor" | wc -l

注意:

1. Linux下top指令查看到的CPU信息是按照逻辑CPU呈现的;

2. 当使用指令:cat /proc/cpuinfo 时,

a. "physical id"是物理插座的唯一标识符,拥有相同的"physical id"的所有逻辑CPU共享物理插座;

b. "core id"是CPU内核的唯一标识符,拥有相同的"core id"的逻辑CPU都位于同一CPU内核上;

c. 如果有2个或2个以上逻辑CPU拥有相同的"core id"和"physical id",则说明系统支持超线程(HT)技术;

d. 如果有2个或2个以上逻辑CPU拥有相同的"physical id",但是"core id"不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。

e. "siblings"列出了位于相同物理封装(具有相同的"physical id")中的逻辑CPU的数量。

如下服务器上,'physical id'有2个,'cores'为24,'processor'为96,'siblings'的值为48。

说明这台服务器主机上的CPU是两个物理封装的处理器,每个处理器有24个核心(cores),每个CPU core借助超线程技术可以划分2个逻辑CPU,因此每个物理CPU会有48个逻辑CPU(siblings),总共就有96个物理CPU(processor)

img

2. 存储

2.1 查看内存信息

使用cat /proc/meminfo查看内存信息,比free要丰富许多。

3. GPU

3.1 GPU基本和使用信息(nvidia-smi)

nvidia-smi是 Nvidia 显卡命令行管理套件,基于 NVML 库,旨在管理和监控 Nvidia GPU 设备。

nvidia-smi  # 查看当前GPU使用情况
watch -n 5 nvidia-smi  # 查看实时GPU使用情况(每5秒)
参数介绍:
GPU: 序号
Fan: 风扇转速, 在0~100%之间
Temp: 温度(摄氏度)
Perf: 性能, 在P0(最大)~P12之间
Pwr: 能耗
Persistence-M: 持续模式是否打开, 虽然增加能耗但是可以更快启动该GPU
Bus-Id: 关于GPU总线
Disp.A: GPU的显示是否初始化
Memory-Usage: 显存使用率
Volatile Uncorr. ECC: 关于ECC
GPU-Util: 浮动的GPU使用率
Compute: 计算模式

显存和GPU的关系类似于内存和CPU的关系。

Processes显示每块GPU上每个进程所使用的显存情况。

img

3.2 一个管理NVIDIA GPU的工具(gpustat)

gpustat 基于nvidia-smi,可以提供更美观简洁的展示,结合 watch 命令,可以动态实时监控 GPU 的使用情况。

-p  # 显示运行程序的PID
-u  # 显示运行程序的username
-c  # 显示运行程序的cmd
--json  # 以json形式打印所有信息
gpustat -cpu

img

4. 进程

4.1 实时显示Linux进程(top)

top命令提供系统的动态实时视图,可以显示系统摘要信息和当前由Linux内核管理的进程和线程列表,能够实时显示它们的资源占用情况,经常用来监控Linux的系统状况,是常用的性能分析工具。

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
​
d :改变显示的更新速度,或是在交谈式指令列(interactive command)按s
q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行
c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程(dead child process )的CPU time累积起来
​
s :安全模式,将交谈式指令取消,避免潜在的危机
i :不显示任何闲置(idle)或无用(zombie)的行程
n :更新的次数,完成后将会退出top
b :批次档模式,搭配"n"参数一起使用,可以用来将top的结果输出到档案内

第1行 任务队列信息

03:25:32 # 当前时间

up 48 days, 3:29 # 系统运行时间

X users # 当前登录用户数

load average # 系统负载,即任务列表的平均长度(1分钟、5分钟、15分钟到目前)

第2行 进程信息

total # 进程总数

running # 正在运行的进程数

sleeping # 睡眠进程数

stopped # 停止进程数

zombie # 僵尸进程数

第3行 CPU信息

0.3 us # 用户空间占用CPU百分比

0.2 sy # 内核空间占用CPU百分比

0.0 ni # 用户进程空间内改变过优先级的进程占用CPU百分比

100.0 id # 空闲CPU百分比

0.0 wa # 等待输入输出的CPU时间百分比

0.0 hi # 硬中断(Hardware IRQ)占用CPU的百分比

0.0 si # 软中断(Software Interrupts)占用CPU的百分比

0.0 st # 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的CPU时间

第4行 内存信息

KiB Memory

26338089+ total # 物理内存总量

24153736+ free # 空闲内存总量

7338196 used # 使用的物理内存总量

14505332 buff/cache # 用作内核缓存的内存量

第5行 交换区信息

KiB Swap

4194300 total # 交换区总量

47100 free # 空闲交换区总量

4147200 used # 使用的交换区总量

2549017+ avail Mem # 代表可用于进程下一次分配的物理内存数量

进程信息(默认按照CPU时间占用百分比排序)

PID # 进程id

USER # 进程所有者的用户名

PR # 进程优先级

NI # nice值。负值表示高优先级,正值表示低优先级

VIRT # 进程使用的虚拟内存总量,单位kb,包含SWAP(进程使用的虚拟内存中,被换出的大小)和RES(进程使用的、未被换出的物理内存大小)

RES # 进程使用的、未被换出的物理内存大小

SHR # 共享内存大小

%CPU # 上次更新到现在的CPU时间占用百分比

%MEM # 进程使用的物理内存占用百分比

TIME+ # 进程使用的CPU时间总计,单位1/100秒 COMMAND # 命令

img

进入top后,输入1,可以监控每个逻辑CPU的情况。输入b,可以对运行态进程打开或者关闭高亮效果。输入x,可以打开或关闭列的高亮效果。 在top基本视图中,输入f进入另一个视图,在这里可以编辑基本视图中的显示字段。

5. 目录

5.1 目录切换(cd)

cd /  # 切换到根目录
cd ..  # 切换到上一级目录
cd ~  # 切换到home目录
cd -  # 切换到上次访问的目录

5.2 列目录内容(ls)

程序ls先列出非目录的文件项,然后是每一个目录中的“可显示”文件。

ls  # 查看当前目录下的所有目录和文件
ls -a  # 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll  # 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir  # 查看指定目录下的所有目录和文件
pwd  # 打印当前目录的名字

5.3 目录基本操作(增删改查)

5.3.1 建立目录(mkdir)

mkdir 用指定的名字建立目录。 缺省时,新建立的目录模式为0777,即不加保护地对所有人 都可读、可写、可执行。

mkdir ai  # 建立目录
mkdir -p cs/ai/pro  #  为所给出的目录建立丢失了的父目录

5.3.2 移除文件或者目录(rm)

rm移除每个给定的文件。默认情况下,它不能移除目录。但是当给定了-r或者-R选项时,在指定目录之下的整个目录树都会被移除(而且对通过`rm -r'能够移除的目录树深度是没有限制的)。

-r 递归地移除目录中的内容
-f 忽略不存在的文件,并且从不向用户提示
​
rm ai.txt  # 删除文件
rm -r dir  # 递归删除dir目录中的内容
rm -rf dir  # 递归删除dir目录中的内容(不询问)
rm -rf *  # 删除当前目录下的所有内容

5.3.3 移动(改名)文件(mv, cp)

5.3.4 递归地在层次目录中处理文件(find)

6. 文件

6.1 文件基本操作(增删改查)

6.1.1 修改文件的时间戳或创建新文件(若文件不存在)(touch)

6.1.2 移除文件或者目录(rm)

6.1.3 文本编辑(vi, vim)

6.1.4 文件查看(cat, more, less, tail)

6.2 改变文件的访问权限(chmod)

6.3 打包和压缩文件(tar)

7. 查找

7.1 grep

7.2 find

7.3 locate

7.4 whereis

7.5 which

8. 管理员权限

8.1 su

8.2 sudo

9. 网络管理

9.1 显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组(netstat)

10. 安全管理

10.1 列出打开文件(lsof)

11. 系统管理

who  # 显示已经登录的用户
whoami  # 显示当前操作的用户
hostname  # 显示主机名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值