• 查看Linux系统信息的常用命令


    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主频
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2. 常用分析工具

    主要分析工具

    • vmstat、sar、mpstat、pidstat:检测是否存在 CPU 瓶颈(线程);
    • vmstat、free:检测是否存在内存瓶颈(进程);
    • iostat:检测是否存在磁盘 I/O 瓶颈;
    • netstat:检测是否存在网络 I/O 瓶颈;

    排查流程

    • CPU:top jstack vmstat
    • 磁盘:df iostat iotop
    • 内存:free OOM
    • 网络:netstat

    工具枚举

    1. CPU信息lscpu 命令可以查看CPU的详细信息,例如核心数、频率等。
    2. 内存信息free 命令可以查看内存使用情况,包括总内存、已用内存、可用内存等。
    3. 磁盘空间df 命令用于显示磁盘分区的空间使用情况。
    4. 进程信息ps 命令可以列出当前运行的进程,top 命令可以实时显示进程的系统资源使用情况。
    5. 网络连接netstatss 命令可以列出当前的网络连接情况。
    6. 日志文件/var/log/ 目录下存储了系统的各种日志文件,您可以查看这些日志文件以了解系统运行情况和潜在问题。
    7. 系统负载uptime 命令可以显示系统的负载情况,即CPU平均负载。
    8. 网络性能ping 命令可以测试与其他主机的网络连接,traceroute 命令可以跟踪数据包的路径。
    9. 硬件信息lshwlspci 命令可以获取硬件设备的信息,例如CPU、内存、显卡等。
    10. 系统信息uname 命令用于查看系统的基本信息,例如内核版本、操作系统类型等。
    11. 系统服务systemctl 命令用于管理系统服务,可以查看服务的状态、启动、停止等。
    12. 系统安全ufw 命令用于管理防火墙规则,fail2ban 可以保护系统免受暴力破解攻击。

    3. 常用指令解读

    3.1 lscpu

    在终端中运行 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)支持的核心数,此处为20,表示每个插槽有20个核心。
      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高速缓存地址
      lscpu
      其中:
      index0是一级缓存 数据指令 存放的地方
      index1是一级缓存 数据储存 存放的地方(即一级缓存分指令和数据2部分存储)
      index2是二级缓存 数据存储 存放的地方
      index3是三级缓存 数据存储 存放的地方

    通过 lscpu 命令,我们可以了解到系统的CPU配置,包括核心数、线程数、频率、缓存大小等,这些信息对于了解系统性能和优化应用程序的运行非常有用。

    4. 定位僵尸进程

    使用ps命令结合-e选项和-o选项来查看所有进程的状态:

    ps -eo pid,ppid,stat,cmd | grep -w Z
    
    • 1

    这会列出所有状态为Z的进程,即僵尸进程。
    输出:
    僵尸进程

     ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
    
    • 1

    输出:
    僵尸进程

    指令参数解读: 
    ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
    -A  参数列出所有进程
    -o  自定义输出字段 stat(状态)、ppid(进程父id)、pid(进程id)、cmd(命令) 
    因为状态为z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
    
    • 1
    • 2
    • 3
    • 4
    • 5

    还可以通过top命令查找,当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程。
    僵尸进程

    5. 参考

    【Linux】查看系统各种信息的常用命令 (CPU、内存、进程、网口、磁盘、硬件、等等)
    Linux性能检查常用命令

  • 相关阅读:
    单元测试框架学习
    自己制作智能语音机器人(基于jetson nano)
    微服务架构-微服务实施
    Qt之自定义插件(单控件,Qt设计师中使用)
    C语言第三十弹---自定义类型:结构体(上)
    Item 39: Consider void futures for one-shot event communication.
    springmvc项目实现自动化部署
    我用Python连夜离线了100G图片,只为了防止网站被消失
    无人机航测没信号?北斗卫星来解决
    如何写出优美的代码
  • 原文地址:https://blog.csdn.net/craftsman2020/article/details/133300453