文章目录
看CPU情况
jobs:查看当前终端后台运行的进程
fg:将进程调到前台
lscpu:查看CPU信息
cat /proc/cpuinfo:查看CPU信息
看进程情况
ps命令
-a 显示所有终端机下执行的进程,除了阶段作业领导者之外。
a 显示现行终端机下的所有进程,包括其他用户的进程。
-A 显示所有进程。
-c 显示CLS和PRI栏位。
c 列出进程时,显示每个进程真正的指令名称,而不包含路径,参数或常驻服务的标示。
-C<指令名称> 指定执行指令的名称,并列出该指令的进程的状况。
-d 显示所有进程,但不包括阶段作业领导者的进程。
-e 此参数的效果和指定"A"参数相同。
e 列出进程时,显示每个进程所使用的环境变量。
-f 显示UID,PPID,C与STIME栏位。
f 用ASCII字符显示树状结构,表达进程间的相互关系。
-g<群组名称> 此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有进程,包括群组领导者的进程。
-G<群组识别码> 列出属于该群组的进程的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示进程间的相互关系。
-j或j 采用工作控制的格式显示进程状况。
-l或l 采用详细的格式来显示进程状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的进程,除了执行ps指令终端机下的进程之外。
-p<进程识别码> 指定进程识别码,并列出该进程的状况。
p<进程识别码> 此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的进程。
-s<阶段作业> 指定阶段作业的进程识别码,并列出隶属该阶段作业的进程的状况。
s 采用进程信号的格式显示进程状况。
S 列出进程时,包括已中断的子进程资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的进程的状况。
t<终端机编号> 此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有进程。
-u<用户识别码> 此参数的效果和指定"-U"参数相同。
u 以用户为主的格式来显示进程状况。
-U<用户识别码> 列出属于该用户的进程的状况,也可使用用户名称来指定。
U<用户名称> 列出属于该用户的进程的状况。
v 采用虚拟内存的格式显示进程状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示进程状况。
[root@monitor_server lianxi]# ps aux|grep ssh
root 1015 0.0 0.2 112900 4308 ? Ss 09:53 0:00 /usr/sbin/sshd -D
root 2206 0.0 0.3 158904 5592 ? Ss 14:22 0:00 sshd: root@pts/1
root 2382 0.0 0.3 158904 5596 ? Ss 15:27 0:00 sshd: root@pts/2
root 3034 0.0 0.0 112824 984 pts/1 S+ 17:31 0:00 grep --color=auto ssh
pstree命令
看进程关系
[root@monitor_server lianxi]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─grafana───12*[{grafana}]
├─gssproxy───5*[{gssproxy}]
├─irqbalance
├─login───bash
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─nginx───nginx
├─polkitd───6*[{polkitd}]
├─prometheus───9*[{prometheus}]
├─rpcbind
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───bash───pstree
│ └─sshd───bash
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───2*[{vmtoolsd}]
看内存情况
free -h:
[root@monitor_server lianxi]# free -h
total used free shared buff/cache available
Mem: 1.8G 269M 1.0G 9.6M 502M 1.4G
Swap: 1.0G 0B 1.0G
Mem:内存
total:总的内存
used:使用的
free:空闲的
shared:共享的内存
buff/cache:缓存
buff:在内存的临时存放地,满了就read/write,主要是写入,内存->磁盘
cache:也是一个临时存放地,主要是读取,磁盘->内存
available:可以给下一个进程使用的空间(free+buff/cache)
Swap:交换分区(从磁盘中开辟一块空间作为临时内存使用)
[root@monitor_server lianxi]# cat /proc/sys/vm/swappiness
30
[root@monitor_server lianxi]# vim /etc/sysctl.conf
[root@monitor_server lianxi]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.swappiness=0
[root@monitor_server lianxi]# sysctl -p
vm.swappiness = 0
当物理内存只剩30%时使用交换分区,可以调整为0%
OOM
内存溢出:申请内存超过系统能提供的内存
进程出现oom现象一般都是不能提供业务访问,会被内核杀死
查看网络流量
可以使用监控软件查看路由器和交换机
需要在交换机和路由器上打开snmp协议(简单网络管理协议)
ethtool ens33:
[root@monitor_server /]# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
ss、netstat命令:
–verbose , -v
详细模式运行。特别是打印一些关于未配置地址族的有用信息。
–numeric , -n显示数字形式地址而不是去解析主机、端口或用户名。 [[ ]]
–numeric-hosts显示数字形式的主机但是不影响端口或用户名的解析。 [[ ]]
–numeric-ports显示数字端口号,但是不影响主机或用户名的解析。 [[ ]]
–numeric-users显示数字的用户ID,但是不影响主机和端口名的解析。 [[ ]]
–protocol=family , -A指定要显示哪些连接的地址族(也许在底层协议中可以更好地描述)。 family 以逗号分隔的地址族列表,比如 inet , unix ,
ipx , ax25 , netrom , 和 ddp 。 这样和使用 --inet , --unix ( -x ), --ipx ,
–ax25 , --netrom, 和 --ddp 选项效果相同。 地址族 inet 包括raw, udp 和tcp 协议套接字。 [[ ]]
-c, --continuous将使 netstat 不断地每秒输出所选的信息。 [[ ]]
-e, --extend显示附加信息。使用这个选项两次来获得所有细节。 [[ ]]
-o, --timers包含与网络定时器有关的信息。 [[ ]]
-p, --programs显示套接字所属进程的PID和名称。 [[ ]]
-l, --listening只显示正在侦听的套接字(这是默认的选项) [[ ]]
-a, --all显示所有正在或不在侦听的套接字。加上 --interfaces 选项将显示没有标记的接口。 [[ ]]
-F显示FIB中的路由信息。(这是默认的选项) [[ ]]
-C显示路由缓冲中的路由信息。
[root@monitor_server /]# netstat -anplut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1289/master
相关参数含义:
Proto
套接字使用的协议。 [[ ]] Recv-Q
连接此套接字的用户程序未拷贝的字节数。 [[ ]] Send-Q
远程主机未确认的字节数。 [[ ]] Local Address
套接字的本地地址(本地主机名)和端口号。除非给定-n --numeric ( -n )
选项,否则套接字地址按标准主机名(FQDN)进行解析,而端口号则转换到相应的服务名。 [[ ]] Foreign Address套接字的远程地址(远程主机名)和端口号。 Analogous to “Local Address.” [[ ]] State
套接字的状态。因为在RAW协议中没有状态,而且UDP也不用状态信息,所以此行留空。通常它为以下几个值之一:
ESTABLISHED
套接字有一个有效连接。 SYN_SENT
套接字尝试建立一个连接。 SYN_RECV
从网络上收到一个连接请求。 FIN_WAIT1
套接字已关闭,连接正在断开。 FIN_WAIT2
连接已关闭,套接字等待远程方中止。 TIME_WAIT
在关闭之后,套接字等待处理仍然在网络中的分组 CLOSED
套接字未用。 CLOSE_WAIT
远程方已关闭,等待套接字关闭。 LAST_ACK
远程方中止,套接字已关闭。等待确认。 LISTEN
套接字监听进来的连接。如果不设置 --listening (-l) 或者 --all (-a) 选项,将不显示出来这些连接。 CLOSING
套接字都已关闭,而还未把所有数据发出。 UNKNOWN
套接字状态未知。
lsof命令
查看本机端口、进程
[root@monitor_server /]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1015 root 3u IPv4 23632 0t0 TCP *:ssh (LISTEN)
sshd 1015 root 4u IPv6 23634 0t0 TCP *:ssh (LISTEN)
sshd 1556 root 3u IPv4 22345 0t0 TCP monitor_server:ssh->192.168.2.110:50067 (ESTABLISHED)
sshd 2206 root 3u IPv4 46610 0t0 TCP monitor_server:ssh->192.168.2.110:53686 (ESTABLISHED)
[root@monitor_server /]# lsof -p 1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 4096 64 /
systemd 1 root rtd DIR 253,0 4096 64 /
systemd 1 root txt REG 253,0 1632776 358540 /usr/lib/systemd/systemd
[root@monitor_server /]# lsof /root
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1532 root cwd DIR 253,0 178 8409153 /root
dstat
[root@monitor_server lianxi]# dstat -ma
------memory-usage----- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
used buff cach free|usr sys idl wai hiq siq| read writ| recv send| in out | int csw
323M 2108k 468M 1026M| 0 0 100 0 0 0| 52k 22k| 0 0 | 0 0 | 75 123
323M 2108k 468M 1026M| 0 0 100 0 0 0| 0 0 | 150B 1102B| 0 0 | 88 128
323M 2108k 468M 1026M| 0 0 100 0 0 0| 0 0 | 60B 426B| 0 0 | 60 104
323M 2108k 468M 1026M| 0 0 100 0 0 0| 0 0 | 60B 426B| 0 0 | 58 97
nc、nmap、fping、iftop命令
nc:
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
nmap
[root@monitor_server lianxi]# nmap 192.168.2.202
Starting Nmap 6.40 ( http://nmap.org ) at 2023-05-07 15:59 CST
Nmap scan report for 192.168.2.202
Host is up (0.0000020s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
3000/tcp open ppp
9090/tcp open zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 1.98 seconds
fping
扫描网段看那些在用,那些没用
iftop
查看实时流量变化
查看磁盘情况
df 命令
-a, --all
列出包括BLOCK为0的文件系统
--block-size=SIZE use SIZE-byte blocks
指定块的大小
-h,--human-readable
用常见的格式显示出大小(例如:1K 234M 2G)
-H,--si
同上,但是这里的1k等于1000字节而不是1024字节
-i, --inodes
用信息索引点代替块表示使用状况
-k, --kilobytes
指定块大小等于1024字节来显示使用状况
-l, --local
只显示本地文件系统使用状况
-m, --megabytes
以指定块大小等于1048576字节(1M)来显示使用状况
--no-sync
在取得使用信息前禁止调用同步 (default)
-P, --portability
使用POSIX格式输出
--sync
在取得使用信息前调用同步
-t, --type=TYPE
只显示指定类型(TYPE)的文件系统
-T, --print-type
输出每个文件系统的类型
-x, --exclude-type=TYPE
只显示指定类型(TYPE)之外的文件系统.
[root@monitor_server lianxi]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 8.0G 2.7G 5.4G 34% /
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
sar命令
sar命令常用格式
sar [options] [-A] [-o file] t [n]
每间隔一秒采集三次
[root@monitor_server lianxi]# sar -d 1 3
Linux 3.10.0-1160.el7.x86_64 (monitor_server) 2023年05月07日 _x86_64_ (4 CPU)
16时18分02秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
16时18分03秒 dev8-0 125.74 0.00 3892.08 30.95 0.08 0.65 0.05 0.59
16时18分03秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时18分03秒 dev253-0 172.28 0.00 3892.08 22.59 0.11 0.65 0.03 0.59
16时18分03秒 dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
DEV
tps:每秒中访问次数
rd_sec/s :每秒读的速度
wr_sec/s :每秒写的速度
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:繁忙度
iostat命令:
-c 只显示CPU行
-d 显示设备(磁盘)使用状态
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
[root@monitor_server lianxi]# iostat -x
Linux 3.10.0-1160.el7.x86_64 (monitor_server) 2023年05月07日 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.05 0.00 0.00 99.92
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.03 0.37 0.36 21.42 10.27 87.16 0.00 0.54 0.57 0.50 0.27 0.02
scd0 0.00 0.00 0.00 0.00 0.04 0.00 114.22 0.00 1.39 1.39 0.00 1.06 0.00
dm-0 0.00 0.00 0.28 0.39 20.07 10.18 90.70 0.00 0.64 0.71 0.59 0.28 0.02
dm-1 0.00 0.00 0.00 0.00 0.09 0.00 50.09 0.00 0.11 0.11 0.00 0.08 0.00
rrqm/s: 每秒进行 merge 的读操作数目。
wrqm/s: 每秒进行 merge 的写操作数目。
r/s: 每秒完成的读 I/O 设备次数。
w/s: 每秒完成的写 I/O 设备次数。
rsec/s: 每秒读扇区数。
wsec/s: 每秒写扇区数。
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作。
top命令
top - 10:00:25 up 38 min, 2 users, load average: 0.00, 0.01, 0.04
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1863028 total, 1183984 free, 274524 used, 404520 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 1431016 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND P
up(启动时间
load average(平均负载):过去1分钟、5分钟、15分钟处于运行或不可终段状态的平均进程数量,用来判断系统是否繁忙,1个CPU核心这个值超过1就繁忙、4个就是超过4(不标准的就是值<5就不忙)
Tasks(进程):total(有多少进程),runing(运行),sleep(相当于就绪和阻塞),stop(暂停挂起)、zombie(僵尸进程,终止了但还占用空间)
解决僵尸进程:杀死僵尸进程的父进程
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
可以按f键进入选项页面,空格确定选中:
Fields Management for window 1:Def, whose current sort field is %CPU
Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!
* PID = Process Id P = Last Used Cpu (SMP)
* USER = Effective User Name TIME = CPU Time
* PR = Priority SWAP = Swapped Size (KiB)
* NI = Nice Value CODE = Code Size (KiB)
* VIRT = Virtual Image (KiB) DATA = Data+Stack (KiB)
* RES = Resident Size (KiB) nMaj = Major Page Faults
* SHR = Shared Memory (KiB) nMin = Minor Page Faults
* S = Process Status nDRT = Dirty Pages Count
* %CPU = CPU Usage WCHAN = Sleeping in Function
* %MEM = Memory Usage (RES) Flags = Task Flags <sched.h>
* TIME+ = CPU Time, hundredths CGROUPS = Control Groups
* COMMAND = Command Name/Line SUPGIDS = Supp Groups IDs
PPID = Parent Process pid SUPGRPS = Supp Groups Names
UID = Effective User Id TGID = Thread Group Id
RUID = Real User Id ENVIRON = Environment vars
RUSER = Real User Name vMj = Major Faults delta
SUID = Saved User Id vMn = Minor Faults delta
SUSER = Saved User Name USED = Res+Swap Size (KiB)
GID = Group Id nsIPC = IPC namespace Inode
GROUP = Group Name nsMNT = MNT namespace Inode
PGRP = Process Group Id nsNET = NET namespace Inode
TTY = Controlling Tty nsPID = PID namespace Inode
TPGID = Tty Process Grp Id nsUSER = USER namespace Inode
SID = Session Id nsUTS = UTS namespace Inode
glance命令
直接输入:glances

文章介绍了在Linux系统中如何使用各种命令工具来监控CPU、内存、网络流量以及磁盘使用情况。包括使用ps命令查看进程,通过free命令查看内存,利用ethtool和netstat分析网络,以及df和iostat命令检查磁盘性能。此外,还提到了其他如sar和top等高级监控工具。
2802

被折叠的 条评论
为什么被折叠?



