Linux 常用操作命令(CentOS 7.0)- 故障定位:服务器负载、进程管理、日志分析

系统经研发测试上线后,如果运行期间出现了BUG,需要对服务故障进行定位,一般会查看服务器负载、服务状态、进程管理、服务日志等。

本文以CentOS 7.0 操作系统上的命令操作作为示例进行记录。

常用工具包安装

# 常用包安装:top
[root@webf ~]# yum install -y procps
# 常用包安装:netstat
[root@webf ~]# yum install -y net-tools
# 常用包安装:lsof:查看系统中已经打开的文件、网络连接和进程
[root@webf ~]# yum install -y lsof
# 常用包安装:vmstat、ifstat:查看系统中已经打开的文件、网络连接和进程
[root@webf ~]# yum install -y dstat
# 常用包安装:iostat:IO性能分析
[root@webf ~]# yum install -y sysstat

#服务器负载

# 实时显示系统中各个进程的资源占用情况
[root@iZbp1eeysy7bvfz9km5t5wZ boot]# top
top - 09:15:29 up 5 days, 20:59,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  16269004 total,   870004 used, 15399000 free,   159804 buffers
KiB Swap:        0 total,        0 used,        0 free.   399772 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                 
 4562 root      20   0  123644   1584   1116 R   0.3  0.0   0:00.02 top                                                                     
    1 root      20   0   49676   3768   2284 S   0.0  0.0   0:03.76 systemd                                                                 
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd                                                                
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.21 ksoftirqd/0                                                             
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                            
    6 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/u16:0                                                           
    7 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 migration/0                                                             
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                  
    9 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0                                                                 
   10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1                                                                 
   11 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/2                                                                 
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/3                                                                 
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/4                                                                 
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/5                                                                 
   15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/6                                                                 
   16 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/7                                                                 
   17 root      20   0       0      0      0 S   0.0  0.0   2:36.71 rcu_sched                                                               
   18 root      20   0       0      0      0 S   0.0  0.0   0:21.22 rcuos/0                                                                 
   19 root      20   0       0      0      0 S   0.0  0.0   0:24.70 rcuos/1                                                                 
   20 root      20   0       0      0      0 S   0.0  0.0   0:24.60 rcuos/2                                                                 
   21 root      20   0       0      0      0 S   0.0  0.0   0:21.66 rcuos/3                                                                 
   22 root      20   0       0      0      0 S   0.0  0.0   0:22.32 rcuos/4                                                                 
   23 root      20   0       0      0      0 S   0.0  0.0   0:19.20 rcuos/5                                                                 
   24 root      20   0       0      0      0 S   0.0  0.0   0:22.12 rcuos/6                                                                 
   25 root      20   0       0      0      0 S   0.0  0.0   0:22.54 rcuos/7                                                                 
   26 root      rt   0       0      0      0 S   0.0  0.0   0:02.03 watchdog/0                                                              
   27 root      rt   0       0      0      0 S   0.0  0.0   0:01.76 watchdog/1                                                              
   28 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 migration/1                                                             
   29 root      20   0       0      0      0 S   0.0  0.0   0:00.17 ksoftirqd/1   
# 顶部信息解读
09:15:29 是当前的本地时间和日期。
up 5 days, 20:59 表示系统已经运行了5天20小时59分钟。
1 user 表示当前有1个用户登录。
load average: 0.00, 0.01, 0.05 是系统的负载情况,包括过去的1分钟、5分钟、15分钟的平均负载。这些数字越接近0,表示系统的负载越低。
Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie 这行显示了当前系统的总任务数,正在运行的进程数,正在睡眠的进程数,已经停止的进程数,以及已经死掉的进程数。
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 这行显示了CPU的利用率。其中us表示用户进程使用CPU的时间,sy表示系统进程使用CPU的时间,ni表示nice值为-20的进程使用CPU的时间,id表示空闲时间,wa表示等待I/O操作的时间,hi表示硬件中断处理的时间,si表示软件中断处理的时间,st表示 steal time(被偷走的时间)。
KiB Mem: 16269004 total, 870004 used, 15399000 free, 159804 buffers 这行显示了内存的使用情况。其中total表示总内存,used表示已经使用的内存,free表示空闲内存,buffers表示用于存储文件系统缓存的内存。
KiB Swap: 0 total, 0 used, 0 free. 399772 cached Mem 这行显示了交换空间(Swap space)的使用情况。在Linux系统中,当物理内存不足时,一些暂时不用的进程会被移到交换空间中,以释放物理内存。这里total表示总的交换空间大小,used表示已经使用的交换空间大小,free表示空闲的交换空间大小,而cached Mem表示已经被缓存的内存大小。
# 各列信息解读
PID:进程ID。
USER:进程所有者。
PR:进程优先级。
NI:nice值。
VIRT:进程使用的虚拟内存量。
RES:进程使用的物理内存量。
SHR:共享内存量。
S:进程状态(D=不可中断的睡眠状态,R=运行状态,S=睡眠状态,T=跟踪状态,Z=僵尸状态)。
%CPU:占用的CPU使用率。
%MEM:占用的内存使用率。
TIME+:进程启动后的累计CPU时间。
COMMAND:进程名或命令名。
# IO负载:TPS和吞吐量信息(磁盘读写速度单位为KB),每1s收集1次数据,共收集10次后退出
[root@webf ~]# iostat -d -k 1 10
Linux 3.10.0-123.el7.x86_64 (webf.com)     11/15/2023     _x86_64_    (1 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.31        51.06       109.52     213994     458982
sdb               0.11         0.68         1.06       2833       4452
dm-0              0.07         0.46         1.06       1937       4452
dm-1              0.01         0.03         0.00        112          0
# 网络负载:网络发送和接收信息(数据接收和发送速度单位为每秒比特数)
[root@webf ~]# ifstat 
#kernel
Interface        RX Pkts/Rate    TX Pkts/Rate    RX Data/Rate    TX Data/Rate  
                 RX Errs/Drop    TX Errs/Drop    RX Over/Rate    TX Coll/Rate  
lo                     0 0             0 0             0 0             0 0      
                       0 0             0 0             0 0             0 0      
ens33                 97 0            76 0          9004 0         12816 0      
                       0 0             0 0             0 0             0 0      
docker0                0 0             0 0             0 0             0 0      
                       0 0             0 0             0 0             0 0

完整参见:http://www.laobingbiji.com/note/detail.html?note_id=202311151543370000000010318657

你可能感兴趣的:(编程经验,linux,服务器,centos)