top命令算是最直观、好用的查看服务器负载的命令了。它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大。

在终端中输入top,回车后会显示如下内容:

  1. top - 21:48:39 up 8:57, 2 users, load average: 0.36, 0.24, 0.14
  2. Tasks: 322 total, 2 running, 320 sleeping, 0 stopped, 0 zombie
  3. %Cpu(s): 5.0 us, 1.7 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
  4. KiB Mem: 1010504 total, 937416 used, 73088 free, 23708 buffers
  5. KiB Swap: 1046524 total, 280708 used, 765816 free. 365556 cached Mem
  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 8096 root 20 0 320624 38508 21192 S 1.7 3.8 0:41.03 Xorg
  8. 13536 tabalt 20 0 697336 104272 56776 S 1.7 10.3 0:08.29 gnome-langu+
  9. 9426 tabalt 20 0 1213228 72976 16860 S 1.0 7.2 2:07.27 compiz
  10. 197 root 20 0 0 0 0 S 0.3 0.0 0:36.13 kworker/0:2
  11. 1009 root 20 0 303112 3392 1500 S 0.3 0.3 0:00.93 polkitd
  12. 9670 tabalt 20 0 325932 4300 2256 S 0.3 0.4 0:40.27 vmtoolsd
  13. 14016 root 25 5 43940 2408 2000 S 0.3 0.2 0:01.12 http
  14. 14149 tabalt 20 0 591180 19504 12820 S 0.3 1.9 0:00.45 gnome-termi+
  15. 1 root 20 0 33648 1972 744 S 0.0 0.2 0:01.79 init
  16. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
  17. 3 root 20 0 0 0 0 S 0.0 0.0 0:02.80 ksoftirqd/0
  18. 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0
  19. 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
  20. 7 root 20 0 0 0 0 S 0.0 0.0 0:05.55 rcu_sched
  21. 8 root 20 0 0 0 0 R 0.0 0.0 0:03.43 rcuos/0
  22. 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuos/1
  23. 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuos/2

一、系统信息统计

前五行是系统整体状态的统计信息展示区域。下面分别介绍每一行中的内容:

1、第一行显示服务器概况

如下所示,第一行列出了服务器运行了多长时间,当前有多少个用户登录,服务器的负荷情况等,使用uptime命令能获得同样的结果。

  1. top - 21:48:39 up 8:57, 2 users, load average: 0.36, 0.24, 0.14
  2. / / /
  3. 当前时间 运行时长 当前登录用户数 平均负载(1分钟、5分钟、15分钟)

平均负载的值越小代表系统压力越小,越大则代表系统压力越大。通常,我们会以最后一个数值,也就是15分钟内的平均负载作为参考来评估系统的负载情况。

对于只有单核cpu的系统,1.0是该系统所能承受负荷的边界值,大于1.0则有处理需要等待。

一个单核cpu的系统,平均负载的合适值是0.7以下。如果负载长期徘徊在1.0,则需要考虑马上处理了。超过1.0的负载,可能会带来非常严重的后果。

当然,多核cpu的系统是在前述值的基础上乘以cpu内核的个数。如对于多核cpu的系统,有N个核则所能承受的边界值为N.0

可以使用如下命令来查看每个处理器的信息:

cat /proc/cpuinfo

如果只想计算有多少个cpu内核,可以使用如下命令:

cat /proc/cpuinfo | grep 'model name' | wc -l

2、第二行是进程信息:

  1. Tasks: 322 total, 2 running, 320 sleeping, 0 stopped, 0 zombie
  2. / / / / /
  3. 进程总数 正运行进程数 睡眠进程数 停止进程数 僵尸进程数

3、第三行是CPU信息:

  1. %Cpu(s):
  2. 5.0 us 用户空间CPU占比
  3. 1.7 sy 内核空间CPU占比
  4. 0.0 ni 用户进程空间改过优先级的进程CPU占比
  5. 93.0 id 空闲CPU占比
  6. 0.0 wa 待输入输出CPU占比
  7. 0.3 hi 硬中断(Hardware IRQ)CPU占比
  8. 0.0 si 软中断(Software Interrupts)CPU占比
  9. 0.0 st -

4、第四行是内存信息:

  1. KiB Mem: 1010504 total, 937416 used, 73088 free, 23708 buffers
  2. / / / /
  3. 物理内存总量 使用中总量 空闲总量 缓存的内存量

5、第五行是swap交换分区信息:

  1. KiB Swap: 1046524 total, 280708 used, 765816 free, 365556 cached Mem
  2. / / / /
  3. 交换区总量 使用中总量 空闲总量 缓存的内存量

二、进程(任务)状态监控

第七行及以下显示了各进程(任务)的状态监控。各列所代表的含义如下:

  1. PID 进程id
  2. USER 进程所有者
  3. PR 进程优先级
  4. NI nice值。负值表示高优先级,正值表示低优先级
  5. VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  6. RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  7. SHR 共享内存大小,单位kb
  8. S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  9. %CPU 上次更新到现在的CPU时间占用百分比
  10. %MEM 进程使用的物理内存百分比
  11. TIME+ 进程使用的CPU时间总计,单位1/100秒
  12. COMMAND 进程名称(命令名/命令行)

三、与top交互

  • 按键b打开或关闭 运行中进程的高亮效果
  • 按键x打开或关闭 排序列的高亮效果
  • shift + >shift + < 可以向右或左改变排序列
  • f键,可以进入编辑要显示字段的视图,有 * 号的字段会显示,无 * 号不显示,可根据页面提示选择或取消字段。

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要

PHP进阶架构师>>>视频、面试文档免费获取​shimo.im

或 者关注咱们下面的知乎专栏

PHP架构师圈子​zhuanlan.zhihu.com

qthread中获取当前优先级_Linux中强大的top命令相关推荐

  1. jsp中获取不到servlet中的ArrayList

    jsp中获取不到servlet中的ArrayList 错误原因: 因为servlet尽管将请求转发(重定向)到其他页面,但是仍会执行完请求转发后面的代码.jsp也是servlet所以也遵循这个原则! ...

  2. shell脚本中取消高亮显示_Linux中强大的top命令

    top命令算是最直观.好用的查看服务器负载的命令了.它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大. 在终端中输入top,回车后会显示如下内容: 一.系统信息统计 前五 ...

  3. VS2010中获取并调用CRM2011中的工作流

    接触过CRM2011的同学们肯定考虑过这样的一个问题,就是我们CRM系统中的那些实体能否通过外部开发工具,比如VS2010来获取呢?更深一步的说,我们能否获取Workflow实体的所有数据,然后在VS ...

  4. java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数

    最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...

  5. android 6.0 log,android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中

    一.设置保存log文件的路径 在手机刚开机的时候,会有类似如下命令执行 /system/bin/logcat -r 5120 -v threadtime -v usec -v printable -n ...

  6. android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中

    这篇博客分析的是logcat是如何获取logd中的log,然后写入文件. 一.设置保存log文件的路径 在手机刚开机的时候,会有类似如下命令执行 /system/bin/logcat -r 5120 ...

  7. 在java中获取当前时间_JAVA中获取当前系统时间

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowStri ...

  8. 拦截器获取请求参数post_spring boot拦截器中获取request post请求中的参数

    最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...

  9. RecyclerView中获取item在屏幕中的绝对坐标

    本文为原创作品,转载请标明出处:https://blog.csdn.net/wjj1996825/article/details/80433143 需求分析:在项目中有时候我们用RecyclerVie ...

最新文章

  1. mysql 命令源码_MySQL常用命令
  2. 【Python初级】009-错误与异常
  3. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...
  4. python 批量下载网址_python 遍历oss 实现批量下载
  5. Interpreter - 解释器模式
  6. C++和Python的交互
  7. ansa打开catia文件_关于CATIA文件格式的那些事儿
  8. odciexttableopen 调用出错 error open log_如何在 Spring 异步调用中传递上下文
  9. RabbitMQ之Topic交换器模式开发
  10. Go接口(Interface)的使用方法
  11. 2021年12月大学英语六级作文
  12. STM32——舵机驱动
  13. TCP/IP网络编程之多进程服务端(一)
  14. 生物统计学(Biostatistics)笔记第七讲-Linear regression and correlation analysis
  15. 计算机教育的改革论文,中职学校计算机教育现状及改革论文
  16. A095_day01_微信小程序入门与组件
  17. Geogebra 教程之 02 Geogebra初学者的 8 个基本要素
  18. 开篇:数据驱动UI的设计理念
  19. Linux-tar文件打包与压缩
  20. MC9S12XEP100RMV1数据手册中关于384KBPFLASH相关术语术语

热门文章

  1. TensorFlow构建二维数据拟合模型(3)
  2. netbeans java中文_Ubuntu 下jdk安装中文字体 java 解决netbeans 方块字 中文乱码
  3. Ubuntu下的提示信息彩色显示
  4. 2018百度之星程序设计大赛 - 资格赛 1002 子串查询
  5. NEO从源码分析看共识协议
  6. Quartz业务类无法注入Spring对象问题
  7. 开发原生的 Google 眼镜应用 【已翻译100%】(2/2)
  8. 微信iOS多设备多字体适配方案总结
  9. Codis 分布式缓存部署
  10. windows2008C盘清理