系统信息相关
#系统信息相关
uname -a #显示所有系统信息
uname -r #显示内核版本
uptime #显示系统的运行时间、登录用户数、平均负载
hostnamectl #显示或设置主机名以及系统信息
#系统日志相关
journalctl -xe #查看最近的系统日志
journalctl -u nginx #查看nginx服务的日志
journalctl --since "2 hours ago" #查看过去两小时的日志
#查看内核日志
dmesg | less #分页查看内核日志
dmesg -T #显示日志中的时间戳
CPU相关
#CPU整体利用率(采集静态的数据存在误差)
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}'
#CPU整体利用率(采集动态的数据相对准确)
top -bn2 | grep "Cpu(s)" | tail -n1 | awk '{print 100 - $8}'
#CPU每个核心的利用率(需要单独安装sysstat)
mpstat -P ALL 1 1
#当前的CPU频率
grep "cpu MHz" /proc/cpuinfo
#每个核心的当前频率
lscpu | grep "MHz"
#获取线程数
echo $(nproc)
#获取核心数
lscpu | grep '^Core(s) per socket:' | awk '{print $4}'
#获取总核心数
lscpu | awk '/^Socket\(s\)/ {sockets=$2} /^Core\(s\) per socket/ {cores_per_socket=$4} END {print sockets * cores_per_socket}'
#获取CPU插槽数量
lscpu | grep '^Socket(s):' | awk '{print $2}'
#CPU制造商和型号
grep 'model name' /proc/cpuinfo | uniq
#获取缓存大小
lscpu | grep 'L[1-3] cache'
#是否开启超线程(大于1的值则启用超线程)
lscpu | grep 'Thread(s) per core' | awk '{print $4}'
内存相关
#系统内存的简单使用情况
free -h
#系统内存的详细使用情况
cat /proc/meminfo
#查看内存的硬件信息(内存插槽位置、品牌、速率)
dmidecode --type memory
#内存利用率(需要单独安装sysstat)
sar -r 1 1
磁盘相关
#显示文件系统的磁盘使用情况
df -h
#显示文件系统的inode使用情况
df -i
#估算文件或目录所占用的磁盘空间
du -sh /directory
du -sh file
#显示块设备的信息(包括磁盘及其分区)
lsblk
#列出系统中所有磁盘的分区信息
fdisk -l
#显示块设备的属性(如UUID和文件系统类型)
blkid
#查看当前挂载的文件系统及其挂载点
mount | column -t
#磁盘利用率(需要单独安装sysstat)
iostat -dx 1 1
#显示磁盘的硬件影响(包括硬盘型号、序列号、固件版本、支持的功能、健康状态等需要单独安装smartmontools)
smartctl -a /dev/nvme0n1
#进行一些简单的磁盘性能测试(读写测试)
hdparm -tT /dev/nvme0n1
文件句柄相关
#lsof命令
lsof #列出全部打开的文件
lsof -p <PID> #列出某个进程打开的文件
lsof -u <username> #列出某个用户打开的文件
lsof -i #列出打开的网络连接
lsof /path/to/file #列出特定文件的打开情况
lsof +D /path/to/directory #列出指定目录下的打开文件
lsof -i :80 #列出某个端口被哪些进程占用
#ulimit命令
ulimit -n #查看当前会话的最大文件句柄数
ulimit -n 1024 #设置当前会话的最大文件句柄数
ulimit -a #查看所有限制
#fuser命令
fuser /path/to/file_or_directory #查看某个文件或目录正在被哪些进程使用
fuser -n tcp 80 #查看某个端口正在被哪些进程占用
fuser -k /path/to/file_or_directory #强制终止使用指定文件的进程
#直接读取内核维护的文件句柄统计信息
cat /proc/sys/fs/file-nr
#列出特定进程的所有文件句柄
ls -l /proc/<PID>/fd/
#查看系统允许的最大文件句柄数
cat /proc/sys/fs/file-max
#永久设置系统允许的最大文件句柄数(sysctl -p生效)
vim /etc/sysctl.conf
fs.file-max = 2097152
网络相关
#显示所有网络接口的IP地址信息
ip addr show
#显示网络接口的链路状态
ip link show
#显示路由表
ip route show
#DNS查询
dig www.google.com
#显示网卡的详细信息
ethtool eth0
#指定网卡抓包
tcpdump -i eth0
#实时显示网络路径的连通性和丢包情况(结合了ping和traceroute的功能)
mtr www.google.com
端口&进程相关
#显示当前正在运行的进程信息
ps -aux
#显示系统中的网络连接和套接字信息(ss已经替代netstat)
ss -tuln
netstat -tuln
lsof -i -P -n
#查看端口占用情况
lsof -i :22
fuser 22/tcp
#杀死进程
fuser -k 80/tcp
kill -9 <PID>
pkill -f "name"
#查看特定进程的详细信息
ps -p <PID> -o pid,comm,cmd,%cpu,%mem
#过滤指定进程的PID
pidof sshd
pgrep sshd
ps -aux | grep sshd
系统温度相关
#sensors命令(需要安装lm-sensors)
sensors-detect #收集传感器数据
sensors #查看传感器温度
#通过/sys/class/thermal(主板、CPU)
ll /sys/class/thermal
cooling_device0 #冷却设备
cooling_device1 #冷却设备
cooling_device2 #冷却设备(可能有很多cooling_device)
thermal_zone0 #对应的是主板芯片组的温度传感器
thermal_zone1 #对应的是CPU1温度传感器
thermal_zone2 #对应的是CPU2温度传感器
cat /sys/class/thermal/cooling_device0/type
Processor #表示通过调整CPU的工作频率或电压来进行冷却
cat /sys/class/thermal/cooling_device1/type
Fan #通常通过调节风扇的转速来控制散热
cat /sys/class/thermal/thermal_zone0/type
pch_lewisburg #type表示设备类别
cat /sys/class/thermal/thermal_zone1/temp
75000 #temp表示温度(75°C)
#通过/sys/class/hwmon(硬盘、网卡、主板、CPU)
ll /sys/class/hwmon/hwmon0/
hwmon0
hwmon1
hwmon2
cat /sys/class/hwmon/hwmon0/name #name表设备类别
nvme
cat /sys/class/hwmon/hwmon0/temp1_input #temp1_input表示温度(42.85°C)
42850
定位高使用率的进程
#定位高CPU使用率的进程
top -o %CPU
ps aux --sort=-%cpu | head -n 10
#定位高内存使用率的进程
top -o %MEM
ps aux --sort=-%mem | head -n 10
#定位高磁盘写入的进程
iotop #需要安装iotop
pidstat -d 1 #需要安装sysstat
#定位高网络使用的进程
iftop #需要安装iftop
nethogs #需要安装nethogs
#htop命令
默认情况下按CPU使用率排序
按M键切换到按内存使用率排序的模式
相关的一些其他工具和命令
#用于显示:虚拟内存、进程、CPU、I/O、陷阱、以及系统分页等信息的统计数据
#每秒刷新一次共显示5次系统性能数据
vmstat 1 5
#常用参数
-s: 显示系统启动以来的累计统计信息。
-d: 显示磁盘统计信息。
-m: 显示slab内存信息
#用于显示系统硬件信息:如BIOS版本、序列号、内存容量、处理器信息等
#指定显示的类别
dmidecode -t bios #显示BIOS信息
dmidecode -t system #显示系统信息
dmidecode -t baseboard #显示主板信息
dmidecode -t processor #显示CPU信息
dmidecode -t memory #显示内存信息
#是一个灵活的实时系统资源统计工具(它结合了vmstat、iostat、netstat、ifstat等工具的功能)
#并列出CPU占用最高的进程
dstat -cdmn --top-cpu
#是一个性能监控工具包(包含了sar、iostat、mpstat、pidstat等命令)
#系统活动报告工具
sar -u 1 5
#磁盘I/O统计信息
iostat -dx 1
#显示各个CPU核心的使用情况
mpstat -P ALL 1
#显示进程级别的统计信息
pidstat -u 1