• [转]系统相关命令


    CPU

    # vmstat 1
    # top -d 1
    # mpstat -P ALL 1
    # while :; do ps -eo,pid,ni,prri,pcpu,psr,comm | grep 'process-name'; sleep 1;done

    检查前三个输出值是否超过了系统逻辑CPU的4倍。 
    # cat /proc/loadavg

    CPU的数量
    #cat /proc/cpuinfo |grep -c processor

    MEM

    # /usr/bin/time -v date
    # /usr/bin/time -v evolution
    # cat /proc/meminfo
    # free -m |grep "Mem" | awk '{print $2}'

    观察si和so值是否较大
    # vmstat 1 5

    I/O

    # iostat -x 1
    # iotop -d 5 -P
    # df -h
    找出占用空间最多的文件或目录:
    # du -cks * | sort -rn | head -n 10

    PS

    按内存从大到小排列
    #ps -e   -o "%C   : %p : %z : %a"|sort -k5 -nr

    按cpu利用率从大到小排列
    #ps -e   -o "%C   : %p : %z : %a"|sort   -nrl

    进程总数   
    # ps aux | wc -l

    可运行进程数目   
    # vmwtat 1 5     列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍

    观察是否有异常进程出现
    # top -id 1

    杀掉80端口相关的进程
    # lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh

    清除僵死进程。
    #ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9

    NET

    # /usr/sbin/ethtool eth0
    # iptraf -d eth0

    查看网卡型号
    kudzu --probe --class=network

    取IP地址:
    ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-   或者

    ifconfig   | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'

    查看sock连接

    # /usr/sbin/netstat -npt | awk '{if($6!="Foreign" && $6!="")arr[$6]++;}END{for(i in arr) print i"\t" arr[i];}' | sort -rn -k2
    # /usr/sbin/ss| awk '{if($1!="State")arr[$1]++;}END{for(i in arr) print i"\t"arr[i];}' | sort -rn -k2

    查看本机端口连接数

    # /usr/sbin/ss | awk '{print $4}' | grep "`hostname -i` 80" | wc -l

    查看当前TCP连接的状态
    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
    netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
    netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n

    网络负载   # sar -n DEV
    检查网络流量(rxbyt/s, txbyt/s)是否过高

    网络错误   # netstat -i
    检查是否有网络错误(drop fifo colls carrier)   也可以用命令:# cat /proc/net/dev

    LIMIT

    检查打开文件数目   # lsof | wc -l

    工具

    iostat
    iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

    meminfo 和 free
    Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:
    cat /proc/meminfo
    另外你可以使用 free 命令来显示动态的内存使用信息,free 只是给你大概的内存信息,而 meminfo 提供的信息更加详细。

    mpstat
    mpstat mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

    netstat
    netstat 和 ps 命令类似,是 Linux 管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:
    -a Show all socket information
    -r Show routing information
    -i Show network interface statistics
    -s Show network protocol statistics

    nmon
    nmon, 是 Nigel’s Monitor 的缩写,是一个使用很普遍的开源工具,用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon 也提供了一个图形化的工具:

    要运行 nmon,你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入 c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f 命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。
    在每日的监控工作中,我发现 nmon 是我最常用的工具。

    pmap
    pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数。

    ps 和 pstree
    ps 和 pstree 命令是 Linux 系统管理员最好的朋友,都可以用来列表正在运行的所有进程。ps 告诉你每个进程占用的内存和 CPU 处理时间,而 pstree 显示的信息没那么详细,但它以树形结构显示进程之间的依赖关系,包括子进程信息。一旦发现某个进程有问题,你可以使用 kill 来杀掉它。

    sar
    sar 程序是系统监控工具里的瑞士军刀。该程序包含三个工具:sar 用来显示数据,sa1 和 sa2 用来收集数据并保存。sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。sar 和 nmon 最大的不同就是 sar 跟适合用作长期的监控,而 nmon 可以让你快速的了解系统当前状态。

    strace
    strace 经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。
    Strace 也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用。

    tcpdump
    Tcpdump 是一个简单、可靠的网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络。当然,如果你要获取跟详细的信息,你应该使用 Wireshark (下面我们会介绍).

    top
    top 命令显示当前的活动进程,默认它是按消耗 CPU 的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方式,例如 m 是按内存占用方式进行排序的快捷键。

    uptime
    uptime 命令告诉你这台服务器从开机启动到现在已经运行了多长时间了。同时也包含了从启动到现在服务器的平均负载情况。

    vmstat
    你可以使用 vmstat 来监控虚拟内存,一般 Linux 上的开发者喜欢使用虚拟内存来获得最佳的存储性能。该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

    Wireshark
    Wireshark, 前身是 Ethereal ,是一个网络协议检测程序,让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等.

    tcpcopy 
    tcpdump
    netsniff-ng
    JunkieTheSniffer
    作者:yuandianlws 发表于2013-3-7 9:43:05 原文链接
    阅读:123 评论:0 查看评论
  • 相关阅读:
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    面向对象第四单元总结
    面向对象第三单元总结
    面向对象第二单元的总结
    操作系统lab3实验总结
    操作系统lab2实验总结——Part2
    操作系统lab2实验总结——Part1
  • 原文地址:https://www.cnblogs.com/yuandianliws/p/3568252.html
Copyright © 2020-2023  润新知