• CentOS中查看系统资源占用情况的命令


    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...

      还 有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。

    top:
    主要参数
    d:指定更新的间隔,以秒计 算。
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S: 累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行 程。
    n:显示更新的次数,完成后将会退出to
    显示参数:
    PID(Process ID):进程标示号。
    USER:进程所 有者的用户名。
    PR:进程的优先级别。
    NI:进程的优先级别数值。
    VIRT:进程占用的虚拟内存值。
    RES:进程占用的 物理内存值。
    SHR:进程使用的共享内存值。
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负 数。
    %CPU:该进程占用的CPU使用率。
    %MEM:该进程占用的物理内存和总内存的百分比。
    TIME+:该进程启动后占用的总 的CPU时间。
    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
    top命令使用过程中,还可以 使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    <空格>:立刻刷新。
    P:根据CPU使用大小进行排 序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c: 切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐 方法。

    free
    1.作用
    free命令用来显示内存的使用情况,使用权限是所有用 户。

    2.格式
    free [-b-k-m] [-o] [-s delay] [-t] [-V]

    3.主要参数
    -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显 示内存总和列。
    -o:不显示缓冲区调节列。

    uptime

    18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
    现在的时间
    系统开机运转到现在经过的 时间
    连线的使用者数量
    最近一分钟,五分钟和十五分钟的系统负载
    参数: -V 显示版本资讯。

    vmstat

    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
    r b swpd free buff cache si so bi bo in cs us sy id wa
    0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
    1 观察磁盘活动情况
    磁 盘活动情况主要从以下几个指标了解:
    bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
    bo:表示 每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
    wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越 大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要 进行性能调整了。
    2 观察cpu活动情况
    vmstat比top更能反映出cpu的使用情况:
    us:用户程序使用cpu的时间比 例。这个数字越大,表示用户进程越繁忙。
    sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
    id:cpu 空闲的时间比例。
    wa:cpu等待未决的磁盘IO的时间比例。

    iostat

    用于统 计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
    参数:
    -c 只显示CPU行
    -d 显示磁盘行
    -k 以千字节为单位显示磁盘输出
    -t 在输出中包括时间戳
    -x 在输出中包括扩展的磁盘指标

    avg-cpu: %user %nice %sys %iowait %idle
    20.25 0.18 2.61 76.39 0.57
    %iowait 等待本地I/O时CPU空闲时间的百分比
    %idle 未等待本地I/O时CPU空闲时间的百分比

    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
    hda 9.86 284.34 84.48 685407 2036
    每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节 块读取(Blk_read)和写入(Blk_wrtn)的总数量。
      系统
      # uname -a # 查看内核/操作系统/CPU信息
       # head -n 1 /etc/issue # 查看操作系统版本
      # cat /proc/cpuinfo # 查看CPU信息
       # hostname # 查看计算机名
      # lspci -tv # 列出所有PCI设备
      # lsusb -tv # 列出所有USB设备
      # lsmod # 列出加载的内核模块
      # env # 查看环境变量
      资源
       # free -m # 查看内存使用量和交换区使用量
      # df -h # 查看各分区使用情况
      # du -sh # 查看指定目录的大小
      # grep MemTotal /proc/meminfo # 查看内存总量
      # grep MemFree /proc/meminfo # 查看空闲内存量
      # uptime # 查看系统运行时间、用户数、负载
      # cat /proc/loadavg # 查看系统负载
      磁盘和分区
      # mount | column -t # 查看挂接的分区状态
      # fdisk -l # 查看所有分区
      # swapon -s # 查看所有交换分区
      # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
      # dmesg | grep IDE # 查看启动时IDE设备检测状况
      网络
      # ifconfig # 查看所有网络接口的属性
      # iptables -L # 查看防火墙设置
      # route -n # 查看路由表
      # netstat -lntp # 查看所有监听端口
      # netstat -antp # 查看所有已经建立的连接
      # netstat -s # 查看网络统计信息
      进程
      # ps -ef # 查看所有进程
       # top # 实时显示进程状态
      用户
      # w # 查看活动用户
      # id # 查看指定用户信息
      # last # 查看用户登录日志
      # cut -d: -f1 /etc/passwd # 查看系统所有用户
      # cut -d: -f1 /etc/group # 查看系统所有组
      # crontab -l # 查看当前用户的计划任务
      服务
      # chkconfig --list # 列出所有系统服务
       # chkconfig --list | grep on # 列出所有启动的系统服务
      程序
       # rpm -qa # 查看所有安装的软件包
    ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less
    执行以上命令可查看各个程序进程内存使用的内存情况,如下图所示,第一列为进程占用的内存百分比,可以看到哪些应用程序占的内存比较多,用于排查问题:
  • 相关阅读:
    Kubernetes 1.5 配置dns
    详细图解,一眼就能看懂!卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别
    把C#程序(含多个Dll)合并成一个Exe的超简单方法
    TortoiseSVN 合并操作简明教程
    简单说说.Net中的弱引用
    漫谈并发
    可靠UDP设计
    自动内存管理算法 —— 标记和复制法
    Unity防破解 —— 加密Dll与Key保护
    Unity防破解 —— 重新编译mono
  • 原文地址:https://www.cnblogs.com/andydao/p/4236737.html
Copyright © 2020-2023  润新知