linux常用命令

linux常用命令

编码文章call10242025-03-07 15:51:3430A+A-

性能监视相关命令

  • ifconfig
  • top
  • free 内存
  • df 磁盘
  • du 目录下大小
  • iftop 网络流量
  • netstat、lsof、ps 端口定位
  • mpstat cpu
  • vmstat 内存
  • iostat io

常用操作命令

  • 授权:chmod、chown
  • 文本处理:awk数据切片、 grep数据查找定位、sed数据修改、less 查看数据、wc文本统计

ifconfig

  • 1)第一行:以太网卡的名字不是常见的eth0,变成了enp0s3。
    其中en代表以太网卡
    p0s3代表PCI接口的物理位置为(0,3), 其中横座标代表bus,纵座标代表slot
    UP:代表此网络接口为启用状态(down为关闭状态)
    RUNNING:代表网卡设备已连接
    MULTICAST:表示支持组播
    MTU:为数据包最大传输单元
  • (2)第二行:网卡的IP地址、子网掩码、广播地址
  • (3)第三行:IP v6地址
  • (4)第四行:Ethernet(以太网)表示连接类型;ether:表示为网卡的MAC地址
  • (5)第五行:接受数据包个数、大小统计信息
  • (6)第六行:异常接受包的个数、如丢包量、错误等
  • (7)第七行:发送数据包个数、大小统计信息
  • (8)第八行:发送包的个数、如丢包量、错误等

ipmi信息【一个通信协议,它的实现依赖于单独的硬件平台,即基板管理控制器(BMC)

  • IP 源:dhcp
  • IP 地址:10.117.66.146
  • 子网掩码:255.255.248.0【必须结合IP地址一起使用,将某个IP地址划分成网络地址和主机地址两部分,便于快速确定ip所在的网段】
  • 默认网关:10.117.64.1【一个网络通向其他网络的IP地址,网关在网段内的可用ip中选一个,不过,一般用的是第1个和最后一个
  • Mac 地址(当前BMC):6c:92:bf:49:1c:b3【也叫物理地址、硬件地址,MAC地址是网卡决定的,是固定的,用来定义网络设备的位置


top【sar -u】

  • PID 进程id
  • USER 该进程对应的用户
  • PR 优先级
  • VIRT 虚拟内存
  • RES 常驻内存
  • SHR 共享内存
  • S 表示进行状态 S表示睡眠,R表示运行
  • %CPU CPU占用率
  • %MEN 内存占用率
  • TIME+ 运行时间

shift+m 按照内存排序

shift+p 按照cpu排序


free 内存

df 磁盘

Filesystem与Mounted on区别: 前者是物理硬盘的代号,无法通过linux命令访问;后者是可以通过linux命令访问的目录,与左边的磁盘映射。

1、磁盘、分区、目录的关系

  • 任何一个“分区”都必须挂载到某个“目录”上。
  • “目录”是逻辑上的区分,而“分区”是物理上的区分。


linux磁盘命名方式

  • IDE硬盘--->hda、hdb、hdc、hdd
  • SATA硬盘-→sda、sdb、sdc、sdd


linux分区命名方式

  • IDE硬盘--->hda(1-n)...hdb(1-n)...hdd(1-n)
  • SATA硬盘--->sda(1-n)...sdb(1-n)...sdd(1-n)
  • 其中最后一位数字,主分区是1到4,而逻辑分区是5以上的数字。



  • 第一列指定文件系统的名称,其中sdb1、sda2代表实际磁盘的名称,tmpfs是临时文件系统名称,都是指物理上的存储的名称。
  • 最后一列,代表磁盘挂载在哪个目录下。/根目录,挂载在/dev/sda2下,当下面的目录没有挂载在其他盘,那么所有的文件都在/dev/sda2下;当根目录下面的目录例如/mnt/data挂载到/dev/sdb1下,那么/mnt/data目录下的文件都在/dev/sdb1盘下,而不在/dev/sda2下。
  • 磁盘大小都是说的sdb1、sda2这些实际盘的大小。
  • “tmpfs”(临时文件系统):/run 中的文件和目录没有存储在磁盘上,而只存储在内存中。


du 指定范围

iftop 网络io 【sar -n DEV 2 3】

查看流量是从哪些端口发送出去的

  • TX:发送流量
  • RX:接收流量
  • TOTAL:总流量
  • Cumm:运行iftop到目前时间的总流量
  • peak:流量峰值
  • rates:分别表示过去 2s 10s 40s 的平均流量


端口定位程序【netstat、lsof、ps】

  • sudo netstat -anp | grep 9099
  • lsof -i :9099
  • ps -ef|grep 660658


mpstat cpu

可以查看多核心的cpu中每个计算核心的统计数据

  • CPU (处理器编号,all表示所有处理器的平均数值)
  • %user (用户态的CPU利用率百分比)
  • %nice (用户态的优先级别CPU的利用率百分比)
  • %system (内核态的CPU利用率百分比)
  • %iowait (在interval间段内io的等待百分比,interval 为采样频率,如本文的1为每一秒钟采样一次)
  • %irq (在interval间段内,CPU的中断百分比)
  • %soft (在interval间段内,CPU的软中断百分比)
  • %idle (在interval间段内,CPU的闲置百分比,不包括I/O请求的等待)
  • intr/s (在interval间段内所有的CPU每秒中断数)

vmstat 内存

1)procs

  • r 列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU
  • b.b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

2)memory

  • swp 列表示切换到内存交换区的内存数量(以KB为单位)。如果swp的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;
  • free列表示当前空闲的物理内存数量(以KB为单位);
  • buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲;
  • cache列表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。

3)swap

  • si列表示由磁盘调入内存 ,也就是内存进入内存交换区的数量;
  • so 列表示由内存调入磁盘 ,也就是内存交换区进入内存的数量【一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存 】

4)IO

  • bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒)
  • bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。

5)system

  • in列表示在某一时间间隔中观察到的每秒设备中断数;
  • cs列表示每秒产生的上下文切换次数。上面这两个值越大,会看到内核消耗的CPU时间就越多。

6)CPU

  • us列显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。
  • sy列显示了内核进程消耗CPU的时间百分比。sy的值比较高时,就说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。
  • id列显示了CPU处在空闲状态的时间百分比;
  • wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重 。
  • st列一般不关注,虚拟机占用的时间百分比。


iostat 磁盘io 【sar -d】

cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。

disk属性值说明:

device:磁盘名称
tps:每秒钟发送到的I/O请求数.
Blk_read/s:每秒读取的block数.
Blk_wrtn/s:每秒写入的block数.
Blk_read:读入的block总数.
Blk_wrtn:写入的block总数.


注:

I/O瓶颈:如果%iowait的值过高,表示硬盘存在I/O瓶颈。

CPU:%idle值高,表示CPU较空闲,%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

内存:如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。

tps:每秒钟发送到的I/O请求数。
Blk_read/s:每秒读取的block数。
Blk_wrtn/s:每秒写入的block数。
Blk_read:读入的block总数。
Blk_wrtn:写入的block总数。
rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
r_await:每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;

如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。

如果avgqu-sz比较大,也表示有当量io在等待。


less

  • less info.log 查看info.log的日志

  (1)/name 在日志中匹配name的下一个, ?name 在日志中匹配name的上一个

  (2)n 查看下一个 N 查看上一个

  (3) ctrl + f 或者 f 下一页 ctrl + b 或者 b 上一页

  (4) ctrl + d 或者 d 下半页 ctrl + u 或者 u 上半页

  (5)j 下一行 k 上一行 这里 上下键也可以

  (6)g 第一行开始位置 G最后一行(末尾)

  (7)q 退出

  (8)h 帮助


  • less info.log error.log 查看info.log的文件和error.log的文件,这是查看两个文件

  (1)less info.log 在打开一个文件的情况下,可以通过 :e error.log 打开error.log 第二个文件

  (2):n 浏览下一个文件 :p 浏览上一个文件

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4