Linux-常用命令-内存、硬盘和网络

Linux常用命令

内存

top

top命令是Linux下常用的性能分析工具,常用来监控Linux的系统状况,比如cpu、内存的使用等。相当于Windows下的资源管理器,能够动态实时的显示系统中进程的资源占用情况。

使用 -p 或者 -pid 可以指定应用:

top -p[-pid] 360

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。

  • N:以 PID 的大小的顺序排列表示进程列表

  • P:以 CPU 占用率大小的顺序排列进程列表

  • M:以内存占用率大小的顺序排列进程列表

-H选项表示显示线程而不是进程;top -H

free

查看总内存、使用、空闲等情况。

字段说明:

total:总计物理内存的大小

used:已使用多大

free:可用有多少

Shared:多个进程共享的内存总额

Buffers/cached:磁盘缓存的大小

ps

ps -l命令用于报告当前系统的进程状态。

PID:程序的 ID ;

C:CPU 使用的资源百分比

PRI:这个是 Priority (优先执行序) 的缩写;

ps -aux | sort -k4nr | head -N

-aux中参数a指all,即所有的进程;u指userid,即执行该进程的用户id;x指显示所有程序,不以终端机来区分。

sort -k4nr中k代表根据哪一个关键词排序,后面的数字4表示按照第四列排序;n代表numberic sort,指根据其数值排序;r代表reverse,指反向比较结果,因为输出时默认是从小到大,用了反向后就是从大到小。

head -N可以指定显示的行数,默认显示10行

已知程序名称查看进程号

ps -ef | grep 程序名称 
或者
ps -aux | grep 程序名称

pidstat

统计进程的状态,自然也包括进程的IO状况,pidstat -urd 1

  • -u:CPU使用率
  • -r:缺页及内存信息
  • -d:IO信息
  • -t:有需要的话也可以以线程为统计单位

磁盘

df

查看目录(文件夹)的情况,包括大小,已使用,可用。

查看当前目录

df -h

在命令后直接放目录名

df -h /home/

du

具体查看文件夹的占用情况,可以看到文件夹/文件大小

du --max-depth=1 -h 

指定目录

du --max-depth=1 -h /home/

iostat

通过 iostat 方便查看 CPU、网卡、tty 设备、磁盘、CD-ROM 等等设备的活动情况,负载信息。

-C 显示 CPU 使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列 (LVM) 信息
-n 显示 NFS 使用情况
-p [磁盘] 显示磁盘和分区的情况
-t 显示终端和 CPU 的信息
-x 显示详细信息

指定设备

iostat -d <device>

输出说明:

tps:该设备每秒的传输次数。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

端口

netstat

用于显示网络状态信息的命令

要查看特定端口是否被占用:

netstat -tuln | grep <端口号>
  • -t: 显示 TCP 连接信息
  • -u: 显示 UDP 连接信息
  • -l: 仅显示监听状态的端口
  • -n: 使用数字格式显示端口号,而不是服务名
  • grep 端口号: 使用 grep 命令过滤出指定的端口号信息

不加grep就是查看所有被占用的端口

根据进程号查询正在运行的程序的port(端口号):

netstat -anop | grep <pid>
  • -a:或--all 显示所有连线中的Socket
  • -o:或--timers 显示计时器
  • -p:或--programs 显示正在使用Socket的程序识别码和程序名称。

ss

ss 是一个更现代化的工具,用于显示套接字统计信息。它比 netstat 更快速和高效。

用法和netstat一样

ss -tuln | grep <端口号>

fuser

fuser命令可以查看某个文件或目录被哪个进程占用。对于网络端口,也可以使用fuser命令进行查询,

具体的命令为:

fuser <端口号>/tcp

其中端口号为需要查询的端口号。

网络

ifconfig

查看网络配置

ifconfig <网口>

没有<网口>就是查看全部

  • inet:网络接口的IP地址
  • netmask:子网掩码
  • broadcast:广播地址
  • ether:网络接口的物理(MAC)地址,全球唯一的硬件地址
  • mtu:最大传输单元(字节数为1500字节);
    • 每个网络设备都有自己的mtu,默认为1500;若我们设备的mtu大于网络设备,数据在传输的过程中就会被分片拆包,导致网速(效率)变慢;若小于,则发挥不了最大传输能力;最理想的是本地与网络的MTU值相等(基本都是默认1500)

sar

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

-b	I/O 和传输速率信息状况
-B	分页状况
-d	块设备状况
-I      { <中断> | SUM | ALL | XALL }  中断信息状况
-m	电源管理信息状况
-n      { <关键词> [,...] | ALL }  网络统计信息
关键词可以是: 
  DEV	     网卡信息统计
  EDEV	     网卡的错误统计
  NFS	     NFS客户端
  NFSD	     NFS服务器
  SOCK	     Sockets (IPV4套接字)
  IP	         IP流(IPV4)
  EIP	         IP流的错误统计(IPV4)
  ICMP	     ICMP流(IPV4)
  EICMP	     ICMP流的错误统计(IPV4)
  TCP	     TCP流(IPV4)
  ETCP	     TCP流的错误统计(IPV4) 
  UDP	     UDP流(IPV4)
  SOCK6	     Sockets(IPV6套接字)
  IP6	         IP流(IPV6)
  EIP6	     IP流的错误统计(IPV6)
  ICMP6	      ICMP流(IPV6)
  EICMP6    ICMP流的错误统计 (IPV6) 
  UDP6	     UDP流(IPV6) 
-q	队列长度和平均负载
-r	    内存利用率
-R	内存状况
-S	交换空间利用率
-u      显示CPU利用率,包括用户态、系统态和空闲态的CPU时间比例

网络统计信息

sar -n DEV [<时间间隔>] [<次数>]

IFACE:LAN接口

rxpck/s:每秒钟接收的数据包

txpck/s:每秒钟发送的数据包

rxbyt/s:每秒钟接收的字节数

txbyt/s:每秒钟发送的字节数

rxcmp/s:每秒钟接收的压缩数据包

txcmp/s:每秒钟发送的压缩数据包

rxmcst/s:每秒钟接收的多播数据包

rxerr/s:每秒钟接收的坏数据包

txerr/s:每秒钟发送的坏数据包

coll/s:每秒冲突数

rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数

txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数

txcarr/s:发送数据包时,每秒载波错误数

rxfram/s:每秒接收数据包的帧对齐错误数

rxfifo/s:接收的数据包每秒FIFO过速的错误数

txfifo/s:发送的数据包每秒FIFO过速的错误数

CPU 利用率

sar -u [<时间间隔>] [<次数>]
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比
    1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
    2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
    3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

内存分页情况

sar -B [<时间间隔>] [<次数>]
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被 kswapd 扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从 cache 中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank + pgscand)的百分比
posted @ 2024-10-11 15:32  漫漫长夜何时休  阅读(112)  评论(0)    收藏  举报