文章目录
- 1. 机器配置查看
- 2. 常用分析工具
- 3. 常用指令解读
- 3.1 lscpu
- 4. 定位僵尸进程
- 5. 参考
1. 机器配置查看
# 总核数=物理CPU个数x每颗物理CPU的核数
# 总逻辑CPU数=物理CPU个数x每颗物理CPU的核数x超线程数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看物理CPU个数
cat /proc/cpuinfo| grep "processor"| wc -l # 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo |grep name |cut -d: -f2 |uniq -c # 查看CPU信息(型号)
cat /proc/cpuinfo |grep MHz |uniq # 查看CPU主频
[sweet@T-T ~]$ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
[sweet@T-T ~]$ cat /proc/cpuinfo| grep "processor"| wc -l
32
# 这个服务器一共32个逻辑CPU,也就是我们常说的线程数,也就说每个核可以提供2个线程。
[sweet@T-T ~]$ cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 8
[sweet@T-T ~]$ cat /proc/cpuinfo |grep name |cut -d: -f2 |uniq -c
32 Intel(R) Xeon(R) Gold 6234 CPU @ 3.30GHz
2. 常用分析工具
主要分析工具
- vmstat、sar、mpstat、pidstat:检测是否存在 CPU 瓶颈(线程);
- vmstat、free:检测是否存在内存瓶颈(进程);
- iostat:检测是否存在磁盘 I/O 瓶颈;
- netstat:检测是否存在网络 I/O 瓶颈;
排查流程
- CPU:top jstack vmstat
- 磁盘:df iostat iotop
- 内存:free OOM
- 网络:netstat
工具枚举
- CPU信息:
lscpu
命令可以查看CPU的详细信息,例如核心数、频率等。- 内存信息:
free
命令可以查看内存使用情况,包括总内存、已用内存、可用内存等。- 磁盘空间:
df
命令用于显示磁盘分区的空间使用情况。- 进程信息:
ps
命令可以列出当前运行的进程,top
命令可以实时显示进程的系统资源使用情况。- 网络连接:
netstat
或ss
命令可以列出当前的网络连接情况。- 日志文件:
/var/log/
目录下存储了系统的各种日志文件,您可以查看这些日志文件以了解系统运行情况和潜在问题。- 系统负载:
uptime
命令可以显示系统的负载情况,即CPU平均负载。- 网络性能:
ping
命令可以测试与其他主机的网络连接,traceroute
命令可以跟踪数据包的路径。- 硬件信息:
lshw
或lspci
命令可以获取硬件设备的信息,例如CPU、内存、显卡等。- 系统信息:
uname
命令用于查看系统的基本信息,例如内核版本、操作系统类型等。- 系统服务:
systemctl
命令用于管理系统服务,可以查看服务的状态、启动、停止等。- 系统安全:
ufw
命令用于管理防火墙规则,fail2ban
可以保护系统免受暴力破解攻击。
3. 常用指令解读
3.1 lscpu
在终端中运行 lscpu
命令输出:
解析:
-
CPU的架构, 此处为 x86_64,表示使用64位的x86架构。
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian -
CPU op-mode(s)(CPU运行模式):显示CPU支持的运行模式,包括32位和64位。
-
Byte Order(字节顺序):显示字节顺序,此处为 Little Endian,表示低位字节在前。
-
cpu逻辑核数,显示系统中CPU的总数,此处为 80,表示系统有80个CPU核心。
CPU(s): 80 -
On-line CPU(s) list(在线CPU列表):显示在线CPU的编号范围,此处为 0-79,表示编号从0到79的CPU核心都在线。
-
超线程(每核线程数):指的每个 Core 的硬件线程数,超线程。此处为 2,表示每个核心支持2个线程。数值为1时,表示不支持超线程。
Thread(s) per core: 2 -
单个cpu物理核数(每插槽核心数):显示每个CPU插槽(socket)支持的核心数,此处为 4,表示每个插槽有4个核心。
Core(s) per socket: 20 -
座/Socket(s)(插槽数量):指的是主板上CPU的插槽,服务器通常会有多个,此处为 2,表示系统有2个CPU插槽。
-
NUMA 节点: 2
-
Vendor ID(厂商ID):显示CPU制造商ID,此处为 GenuineIntel,表示CPU制造商为Intel。
-
CPU family(CPU系列):显示CPU家族,此处为 6。
-
Model(型号):显示CPU型号,此处为 85。
-
Model name(型号名称):显示CPU型号名称,此处为 Intel® Xeon® Gold 5218R CPU @ 2.10GHz。
-
Stepping步进: 7
-
CPU MHz(CPU频率):显示CPU的时钟频率,此处为 2100.000 MHz。
-
BogoMIPS:一个用于衡量CPU性能的估算值。
-
Virtualization(虚拟化支持):显示CPU是否支持虚拟化,此处为 VT-x,表示支持虚拟化技术。
-
物理cpu处理器个数
-
一级高速缓存 指令集
L1d 缓存: 32K -
一级高速缓存 数据集
L1i 缓存: 32K -
二级高速缓存
L2 缓存: 1024K -
三级高速缓存
L3 缓存: 28160K -
物理cpu0里面的逻辑内核
NUMA 节点0 CPU: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78 -
物理cpu1里面的逻辑内核
NUMA 节点1 CPU: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79 -
liunx高速缓存地址
其中:
index0是一级缓存 数据指令 存放的地方
index1是一级缓存 数据储存 存放的地方(即一级缓存分指令和数据2部分存储)
index2是二级缓存 数据存储 存放的地方
index3是三级缓存 数据存储 存放的地方
通过 lscpu
命令,我们可以了解到系统的CPU配置,包括核心数、线程数、频率、缓存大小等,这些信息对于了解系统性能和优化应用程序的运行非常有用。
4. 定位僵尸进程
使用ps
命令结合-e
选项和-o
选项来查看所有进程的状态:
ps -eo pid,ppid,stat,cmd | grep -w Z
这会列出所有状态为Z
的进程,即僵尸进程。
输出:
或
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
输出:
指令参数解读:
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
-A 参数列出所有进程
-o 自定义输出字段 stat(状态)、ppid(进程父id)、pid(进程id)、cmd(命令)
因为状态为z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
还可以通过top
命令查找,当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程。
5. 参考
【Linux】查看系统各种信息的常用命令 (CPU、内存、进程、网口、磁盘、硬件、等等)
Linux性能检查常用命令