shell命令之---Linux服务器性能查看命令

摘要:
当基于Linux的服务器运行时,它还将表示各种参数信息。1、 CPU和内存类1.top命令的第一行:loadaverage:在多处理器系统上,负载与可用处理器内核的数量有关。因此,平均负载为14.00和24核,您的服务器远没有过载。

  一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息。通常来说运维人员、系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题。

  这里只是一些简单的工具查看系统的相关参数,当然很多工具也是通过分析加工 /proc、/sys 下的数据来工作的,而那些更加细致、专业的性能监测和调优,可能还需要更加专业的工具(perf、systemtap 等)和技术才能完成。

  一、CPU和内存类


  1.top命令  

 shell命令之---Linux服务器性能查看命令第1张

  第一行:load average:在多处理器系统上,负载与可用处理器核心数相关。 单核系统上的“100%利用率”标记为1.00,双核即2.00。因此,平均负载为14.00和24核,您的服务器远远不会过载。

  第二行:统计了系统的任务状态信息。running 很自然不必多说,包括正在 CPU 上运行的和将要被调度运行的;sleeping 通常是等待事件(比如 IO 操作)完成的任务,细分可以包括 interruptible 和 uninterruptible 的类型;stopped 是一些被暂停的任务,通常发送 SIGSTOP 或者对一个前台任务操作 Ctrl-Z 可以将其暂停;zombie 僵尸任务,虽然进程终止资源会被自动回收,但是含有退出任务的 task descriptor 需要父进程访问后才能释放,这种进程显示为 defunct 状态,无论是因为父进程提前退出还是未 wait 调用,出现这种进程都应该格外注意程序是否设计有误。

  第三行:CPU 占用率根据类型有以下几种情况:

  • (us) user:CPU 在低 nice 值(高优先级)用户态所占用的时间(nice<=0)。正常情况下只要服务器不是很闲,那么大部分的 CPU 时间应该都在此执行这类程序

  • (sy) system:CPU 处于内核态所占用的时间,操作系统通过系统调用(system call)从用户态陷入内核态,以执行特定的服务;通常情况下该值会比较小,但是当服务器执行的 IO 比较密集的时候,该值会比较大

  • (ni) nice:CPU 在高 nice 值(低优先级)用户态以低优先级运行占用的时间(nice>0)。默认新启动的进程 nice=0,是不会计入这里的,除非手动通过 renice 或者 setpriority() 的方式修改程序的nice值

  • (id) idle:CPU 在空闲状态(执行 kernel idle handler )所占用的时间

  • (wa) iowait:等待 IO 完成做占用的时间

  • (hi) irq:系统处理硬件中断所消耗的时间

  • (si) softirq:系统处理软中断所消耗的时间,记住软中断分为 softirqs、tasklets (其实是前者的特例)、work queues,不知道这里是统计的是哪些的时间,毕竟 work queues 的执行已经不是中断上下文了

  • (st) steal:在虚拟机情况下才有意义,因为虚拟机下 CPU 也是共享物理 CPU 的,所以这段时间表明虚拟机等待 hypervisor 调度 CPU 的时间,也意味着这段时间 hypervisor 将 CPU 调度给别的 CPU 执行,这个时段的 CPU 资源被“stolen”了。这个值在我 KVM 的 VPS 机器上是不为 0 的,但也只有 0.1 这个数量级,是不是可以用来判断 VPS 超售的情况? 

  CPU 占用率高很多情况下意味着一些东西,这也给服务器 CPU 使用率过高情况下指明了相应地排查思路:

  1. 当 user 占用率过高的时候,通常是某些个别的进程占用了大量的 CPU,这时候很容易通过 top 找到该程序;此时如果怀疑程序异常,可以通过 perf 等思路找出热点调用函数来进一步排查;

  2. 当 system 占用率过高的时候,如果 IO 操作(包括终端 IO)比较多,可能会造成这部分的 CPU 占用率高,比如在 file server、database server 等类型的服务器上,否则(比如>20%)很可能有些部分的内核、驱动模块有问题;

  3. 当 nice 占用率过高的时候,通常是有意行为,当进程的发起者知道某些进程占用较高的 CPU,会设置其 nice 值确保不会淹没其他进程对 CPU 的使用请求;

  4. 当 iowait 占用率过高的时候,通常意味着某些程序的 IO 操作效率很低,或者 IO 对应设备的性能很低以至于读写操作需要很长的时间来完成;

  5. 当 irq/softirq 占用率过高的时候,很可能某些外设出现问题,导致产生大量的irq请求,这时候通过检查 /proc/interrupts 文件来深究问题所在;

  6. 当 steal 占用率过高的时候,黑心厂商虚拟机超售了吧

  第四行和第五行是物理内存和虚拟内存(交换分区)的信息

免责声明:文章转载自《shell命令之---Linux服务器性能查看命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Redis——redis使用redis-dump,redis-load导出导入数据——【三】winrar命令行加压解密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

当linux报 “-bash: fork: 无法分配内存”

“-bash: fork: 无法分配内存”,发现连了好多终端,然后断开了一个终端,然后这边终端可以敲命令了 查看最大进程数  sysctl kernel.pid_max 查看进程数  ps -eLf | wc -l  确认是进程数满了修改最大进程数后系统恢复 echo 1000000 > /proc/sys/kernel/pid_max 永久生效ec...

ORACLE 体系结构

本文内容来自王二暖11G视频讲解 oracle工作原理: 1)、在数据库服务器上启动Oracle实例;2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;3)、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;4)、客户端提交事务;5)、服务器进程获取sql语句并检查共享池中是否有相似的sql语句...

Linux 软件安装之apt+dpkg工具

Linux软件安装方式 Linux 上的软件安装主要有四种方式: 在线安装 从磁盘安装 deb 软件包 从二进制软件包安装 从源代码编译安装 apt APT 是 Advance Packaging Tool(高级包装工具)的缩写,是 Debian 及其派生发行版的软件包管理器,APT 可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了 U...

搜狗拼音输入法LINUX版安装

搜狗拼音输入法LINUX版官方下载: http://pinyin.sogou.com/linux/?r=pinyin 一、添加fcitx的nightlyPPA 在终端中输入: sudo add-apt-repository ppa:fcitx-team/nightlysudo apt-get update 二、安装fcitx,搜狗输入法附加组件 打开软件中...

关于向日葵Linux端、win10版本交互“连接已断开”问题的解决

近日安装向日葵win10客户端与Ubuntu18客户端,安装过程简单,此处不描述。安装后注册账号,在win、U客户端正常登录,也可以手机安装手机App,过程此处不描述。有问题可以留言。在进行远程协助时遇到了通过Win10客户端控制Ubuntu客户端,以及手机App控制Ubuntu客户端时出现了“连接断开”和“正在进入远程桌面”的提示。经过一番痛苦的搜索,终...

DPDK — 安装部署

目录 文章目录 目录 官方手册 环境参数 环境准备 RT Kernel 基础软件依赖 设置大页内存 安装 DPDK 获取 DPDK 代码 设置环境变量 编译安装 目标环境目录 加载内核模块 绑定网卡到新的内核驱动模块 适配 Mellanox ConnectX-5 网卡(可选) hellowrold 官方手册 https://doc.d...