• LINUX监控一:监控命令


    简单的整理一下常用的linux监控命令

    1.top
    top能实时显示CPU 和内存的使用状况。
    1. top - 01:56:31 up 15:59, 1 user, load average: 0.00, 0.00, 0.00
    2. Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
    3. Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
    4. Mem: 1012552k total, 369308k used, 643244k free, 87220k buffers
    5. Swap: 2031608k total, 0k used, 2031608k free, 107636k cached
    6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    7. 2301 root 20 0 867m 81m 7344 S 2.3 8.2 2:51.88 mongod
    8. 420 root 20 0 0 0 0 S 0.3 0.0 0:02.69 flush-253:0
    9. 1 root 20 0 19228 1496 1220 S 0.0 0.1 0:01.12 init
    10. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
    11. 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    12. 4 root 20 0 0 0 0 S 0.0 0.0 0:03.37 ksoftirqd/0
    13. 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    14. 6 root RT 0 0 0 0 S 0.0 0.0 0:00.31 watchdog/0
    15. 7 root 20 0 0 0 0 S 0.0 0.0 1:23.72 events/0
    16. 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
    17. 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
    18. 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
    19. 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
    20. 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
    21. 13 root 20 0 0 0 0 S 0.0 0.0 0:00.84 sync_supers
    22. 14 root 20 0 0 0 0 S 0.0 0.0 0:00.52 bdi-default
    23. 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
    第一行:系统概况
    top - 01:56:31 up 15:59,  1 user,  load average: 0.00, 0.00, 0.00
    分别是:当前时间   系统连续运行的时间  当前登录的用户  平均负载
    01:56:31
    当前时间
    up 15:59
    连接运行时间
    1 user
    当前登录的用户数
     load average: 0.00, 0.00, 0.00
    平均负载,分别为1分钟、5分钟、15分钟,该数值除以逻辑CPU的个数>5时表示CPU使用高。
    第二行:任务情况
    Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
    共71个任务,1个运行,70个休眠,0个停止,0个僵死进程
    第三行:CPU运行情况
    Cpu(s): 0.3%us
    用户空间使用的CPU占比
    0.0%sy
    系统空间使用的CPU占比
    0.0%ni
    改变过优先级的进程战用的CPU的占比
    99.3%id
    空间的CPU占比
    0.0%wa
    IO等待使用的CPU占比
    0.3%hi
    硬中断的使用的CPU占比
    0.0%si
    软中断使用的CPU占比
    0.0%st

    第四行:内存
    Mem: 1012552k total
    内存总大小
    369308k used
    已经使用
    643244k free
    空闲多少内存
    87220k buffers
    缓存数量
    第五行:交换分区
    Swap: 2031608k total
    交换分区的总大小
    0k used
    已经使用的交换分区大小
    2031608k free
    空闲的交换分区大小 
    107636k cached
    被缓存的交换分区大小
    第6行:
    PID
    进程ID
    USER
    进程所有者
    PR
    进程优先级
    NI
    nice值。负值表示高优先级,正值表示低优先级。
    VIRT
    进程使用的虚拟内存问题,单位KB。VIRT=SWAP+RES
    RES
    进程使用的、未被换出的物理内存大小(真实内存大小).
    SHR
    共享内存大小,单位KB
    S
    进程状态。D不可中断的睡眠状态,R运行,S睡眠,T跟踪/停止,Z僵尸进程
    %CPU
    上次更新到现在使用的CPU占比
    %MEM
    进程使用的物理内存占比
    TIME+
    进程使用的CPU时间总计,单位1/100秒
    COMMAND
    进程命令

    2.vmstat
    vmstat从总体上显示了系统的状况。一般画[ 两个参数,如vmstat 2 3表示2秒采取一次数据,一共采集3次
    1. [root@node1 ~]# vmstat 2 3
    2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    3. r b swpd free buff cache si so bi bo in cs us sy id wa st
    4. 1 0 0 632736 95324 108892 0 0 2 6 154 428 0 0 99 0 0
    5. 0 0 0 632712 95324 108892 0 0 0 0 144 491 1 0 99 0 0
    6. 0 0 0 632712 95324 108892 0 0 0 26 148 496 1 1 99 0 0
    r
    运行队列
    b阻塞的进程
    swpd虚拟内存使用的大小,如果数值大于0,说明内存不够用
    free空间的物理内存大小
    buff用于缓存的物理内存大小
    cachecache占用的内存的大小
    si(swap in)第秒从磁盘读入swap的内存大小
    so(swap out)从swap 写入磁盘的
    bi(block in)块设备(比如硬盘)接收的块数量,块默认大小1024b.比如写磁盘就会有block in。
    bo(block out)块设备发送的块数量。比如读磁盘。一般来说,bi bo都不应该太大。
    in(interrupt) CPU 中断次数
    cs每秒上下文切换的次数。在执行系统调用、程序切换等等时要进行上下文切换,很费CPU资源,如果程序总是在做上下文切换,可用的CPU资源就不多。
    us用户的CPU时间
    sy系统使用的CPU时间
    id(idle)空闲CPU时间
    wa(wait)等待IO的CPU时间
    st
    相关参数:
    1. [root@node1 ~]# vmstat --help
    2. usage: vmstat [-V] [-n] [delay [count]]
    3. -V prints version.
    4. -n causes the headers not to be reprinted regularly.
    5. -a print inactive/active page stats. 打印活动/不活动的页状态
    6. -d prints disk statistics 打印磁盘情况
    7. -D prints disk table 打印磁盘信息
    8. -p prints disk partition statistics 打印磁盘分区信息
    9. -s prints vm table 打印vm表
    10. -m prints slabinfo slablinfo信息
    11. -t add timestamp to output
    12. -S unit size
    13. delay is the delay between updates in seconds.
    14. unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)
    15. count is the number of updates.
    3.ps命令
    1. [root@node1 ~]# ps --help
    2. ********* simple selection ********* ********* selection by list *********
    3. -A all processes -C by command name
    4. -N negate selection -G by real group ID (supports names)
    5. -a all w/ tty except session leaders -U by real user ID (supports names)
    6. -d all except session leaders -g by session OR by effective group name
    7. -e all processes -p by process ID
    8. T all processes on this terminal -s processes in the sessions given
    9. a all w/ tty, including other users -t by tty
    10. g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
    11. r only running processes U processes for specified users
    12. x processes w/o controlling ttys t by tty
    13. *********** output format ********** *********** long options ***********
    14. -o,o user-defined -f full --Group --User --pid --cols --ppid
    15. -j,j job control s signal --group --user --sid --rows --info
    16. -O,O preloaded -o v virtual memory --cumulative --format --deselect
    17. -l,l long u user-oriented --sort --tty --forest --version
    18. -F extra full X registers --heading --no-heading --context
    19. ********* misc options *********
    20. -V,V show version L list format codes f ASCII art forest
    21. -m,m,-L,-T,H threads S children in sum -y change -l format
    22. -M,Z security data c true command name -c scheduling class
    23. -w,w wide output n numeric WCHAN,UID -H process hierarchy
    ps命令的参数非常多,常用的有
    1)ps -ef 显示所有进程详细信息
    2)ps -efH 所有进程的线程信息
    3)ps -AL 长格式显示进程
    4)ps -ax 显示服务器上进程

    4.iostat
    iostat是用来显示磁盘和CPU的情况:
    1. [root@node1 ~]# iostat 2 2
    2. Linux 2.6.32-358.el6.x86_64 (node1) 12/28/2015 _x86_64_ (1 CPU)
    3. avg-cpu: %user %nice %system %iowait %steal %idle
    4. 0.41 0.00 0.35 0.04 0.00 99.20
    5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
    6. scd0 0.00 0.00 0.00 288 0
    7. sda 0.72 4.56 13.94 357190 1092500
    8. dm-0 1.98 4.44 13.94 347810 1092448
    9. dm-1 0.00 0.03 0.00 2376 0
    deveice:    磁盘
    tps:        每秒IO请求数
    blk_read/s:每秒读的block个数
    blk_wrtn/s:每秒写的block个数
    blk_read:   一共读的block个数
    blk_wrtn:   一共写的block个数

    更详细的信息:
    1. [root@node1 ~]# iostat -x
    2. Linux 2.6.32-358.el6.x86_64 (node1) 12/28/2015 _x86_64_ (1 CPU)
    3. avg-cpu: %user %nice %system %iowait %steal %idle
    4. 0.40 0.00 0.35 0.04 0.00 99.20
    5. Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
    6. scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 11.19 11.19 0.00
    7. sda 0.19 1.09 0.07 0.65 4.49 13.95 25.49 0.00 2.58 1.72 0.12
    8. dm-0 0.00 0.00 0.24 1.74 4.38 13.95 9.25 0.01 3.53 0.62 0.12
    9. dm-1 0.00 0.00 0.00 0.00 0.03 0.00 8.00 0.00 4.53 1.39 0.00
    Blk_read
    读入块的当总数.

    Blk_wrtn
    写入块的总数.

    kB_read/s
    每秒从驱动器读入的数据量,单位为K.

    kB_wrtn/s
    每秒向驱动器写入的数据量,单位为K.

    kB_read
    读入的数据总量,单位为K.

    kB_wrtn
    写入的数据总量,单位为K.

    rrqm/s
    将读入请求合并后,每秒发送到设备的读入请求数.

    wrqm/s
    将写入请求合并后,每秒发送到设备的写入请求数.

    r/s
    每秒发送到设备的读入请求数.

    w/s
    每秒发送到设备的写入请求数.

    rsec/s
    每秒从设备读入的扇区数.

    wsec/s
    每秒向设备写入的扇区数.

    rkB/s
    每秒从设备读入的数据量,单位为K.

    wkB/s
    每秒向设备写入的数据量,单位为K.

    avgrq-sz
    发送到设备的请求的平均大小,单位是扇区.

    avgqu-sz
    发送到设备的请求的平均队列长度.

    await
    I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.

    svctm
    发送到设备的I/O请求的平均执行时间.单位是毫秒.

    %util
    在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.
    当这个值接近100%时,表示设备带宽已经占满.
     
    5.free
    1. [root@node1 ~]# free
    2. total used free shared buffers cached
    3. Mem: 1012552 463420 549132 0 100304 179744
    4. -/+ buffers/cache: 183372 829180
    5. Swap: 2031608 0 2031608
    mem:系统层面的各指标.总内存1012522,使用了463420(包括 shared buffers cached),空闲free
    -/+buffers/cache:程序层面的指标,shared buffers cached都是可以被程序使用的,所有算在空闲里面
    swap:正常情况下不应该被使用,否则就是内存不够用。

    6.netstat
    1. [root@node1 ~]# netstat -a
    2. Active Internet connections (servers and established) 网络连接(TCP)
    3. Proto Recv-Q Send-Q Local Address Foreign Address State
    4. tcp 0 0 *:28017 *:* LISTEN
    5. tcp 0 0 *:ssh *:* LISTEN
    6. tcp 0 0 localhost:smtp *:* LISTEN
    7. tcp 0 0 *:27017 *:* LISTEN
    8. tcp 0 0 localhost:ssh 192.168.75.1:49742 ESTABLISHED
    9. tcp 0 1 localhost:46531 localhost:27017 SYN_SENT
    10. tcp 0 1 localhost:35646 192.168.75.12:27017 SYN_SENT
    11. tcp 0 0 localhost:ssh 192.168.75.1:58264 ESTABLISHED
    12. tcp 0 0 *:ssh *:* LISTEN
    13. tcp 0 0 localhost:smtp *:* LISTEN
    14. Active UNIX domain sockets (servers and established) 本地UNIX套接字
    15. Proto RefCnt Flags Type State I-Node Path
    16. unix 2 [ ACC ] STREAM LISTENING 24929 /tmp/mongodb-27017.sock
    17. unix 2 [ ACC ] STREAM LISTENING 8691 @/com/ubuntu/upstart
    18. unix 2 [ ACC ] STREAM LISTENING 11532 public/cleanup
    19. unix 2 [ ACC ] STREAM LISTENING 11539 private/tlsmgr
    1. Recv-Q Send-Q 指tcp的接收和发送队列,一般情况下都应该为0,队列中没有任务需要等待。
    2. local和foregine分别表示本机和外机的地址,星表示没数据。
    3. state 状态。
    4. 常见参数
    5. -a (all)显示所有选项
    6. -t (tcp)仅显示tcp相关选项
    7. -u (udp)仅显示udp相关选项
    8. -n 拒绝显示别名,能显示数字的全部转化成数字。
    9. -l 仅列出有在 Listen (监听) 的服務状态
    10. -p 显示建立相关链接的程序名
    11. -r 显示路由信息,路由表
    12. -e 显示扩展信息,例如uid
    13. -s 按各个协议进行统计
    14. -c 每隔一个固定时间,执行该netstat命令。
    15. 提示:LISTENLISTENING的状态只有用-a或者-l才能看到
    查找特定端口:
    netstat -a |grep 27017



















  • 相关阅读:
    gradle3.0新命令
    Android Studio项目生成Jar包
    《图解HTTP》读书笔记
    Java实现多继承
    Unity3d和Android之间互相调用
    《Gradle权威指南》--Android Gradle NDK支持
    《Gradle权威指南》--Android Gradle测试
    《Gradle权威指南》--Android Gradle多渠道构建
    adb命令大全
    SparseArray源码解析
  • 原文地址:https://www.cnblogs.com/skyrim/p/5109043.html
Copyright © 2020-2023  润新知