您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > Linux常用监控命令介绍
1LinuxLinuxLinuxLinux常用监控命令介绍常用监控命令介绍常用监控命令介绍常用监控命令介绍基础应用组梁若羽2011-07-12内容内容内容内容2常用监控命令基础知识在实战中综合运用培训目标1111222233334444培训目标培训目标培训目标培训目标3掌握常用监控命令的用途和启用方法熟悉各个关键输出参数的真实含义了解Linux操作系统的一些基本原理抛砖引玉,交流经验内容内容内容内容4常用监控命令基础知识在实战中综合运用培训目标1111222233334444基础知识基础知识基础知识基础知识————————核心态与用户态核心态与用户态核心态与用户态核心态与用户态5核心态:ring0,操作系统内核代码运行的模式,可以无限制访问系统存储、外部设备用户态:ring3,应用程序自身代码运行的模式,非特权状态,能够访问的地址空间是有限的基础知识基础知识基础知识基础知识————————系统调用系统调用系统调用系统调用(1)(1)(1)(1)6系统调用:核心态开放给用户态的接口,以软中断实现函数调用:用户态层面的概念,与核心态无关基础知识基础知识基础知识基础知识————————系统调用系统调用系统调用系统调用(2)(2)(2)(2)7系统调用无处不在,哪怕是最简单的helloworld!strace命令能够显示所有在程序中使用的系统调用intmain(void){printf(helloworld!);return0;}$strace./helloworld$strace./helloworld$strace./helloworld$strace./helloworld...write(1,helloworld!,12helloworld!)=12exit_group(0)=?基础知识基础知识基础知识基础知识————————进程组与会话进程组与会话进程组与会话进程组与会话(1)(1)(1)(1)8基础知识基础知识基础知识基础知识————————进程组与会话进程组与会话进程组与会话进程组与会话(2)(2)(2)(2)9进程组是一个或多个进程的集合,进程组ID是该组的领头进程的pid会话是一个或多个进程组的集合,当前与终端交互的进程组为前台进程组,只能有一个,其余为后台进程组10基础知识基础知识基础知识基础知识————————进程的几种状态进程的几种状态进程的几种状态进程的几种状态基础知识基础知识基础知识基础知识————————僵尸进程僵尸进程僵尸进程僵尸进程11进程已死亡,但父进程没有收尸,该进程就成僵尸进程僵尸进程不打开任何文件,几乎不占内存,但是占据进程表的资源,进程表记录pid、进程状态、CPU时间等僵尸状态是每个子进程结束时必经的状态系统监控中出现大量僵尸进程,应检查其父进程代码基础知识基础知识基础知识基础知识————————上下文切换上下文切换上下文切换上下文切换12上下文是指进程在CPU的执行环境,例如寄存器状态进程挂起时,保存其上下文,再次运行时恢复基础知识基础知识基础知识基础知识————————虚拟内存与页面虚拟内存与页面虚拟内存与页面虚拟内存与页面每个进程都有其地址空间,地址空间在逻辑上是连续的物理上可以被分为多个RAM碎片,也可以有部分暂存在磁盘,使得进程可用的内存比实际内存要多操作系统把虚拟内存分成一个个页面来管理,Linux的页面大小通常为4K当要访问的逻辑页面不在物理内存时,产生缺页中断内存不足时,淘汰旧页面,换入新页面,页面交换有paging和swapping之分13基础知识基础知识基础知识基础知识————————常规页面常规页面常规页面常规页面14一些大型应用,例如关系数据库等,如仍然使用4K大小的页面,页表必然很大,影响效率基础知识基础知识基础知识基础知识————————巨页巨页巨页巨页15使用巨页能够以较小的页表映射较多的内存基础知识基础知识基础知识基础知识————————虚拟化技术虚拟化技术虚拟化技术虚拟化技术16Hypervisor:运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统共享硬件991原则:90%的服务器在90%的时间,CPU使用率低于10%基础知识基础知识基础知识基础知识————————tcptcptcptcp连接状态连接状态连接状态连接状态17连接建立时的tcp状态变迁客户端:SYN_SENT、ESTABLISHED服务端:LISTEN、SYN_RECV、ESTABLISHED连接关闭时的tcp状态变迁主动方:ESTABLISHED、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSED被动方:ESTABLISHED、CLOSE_WAIT、LAST_ACK、CLOSED一个特殊的tcp状态连接双方同时关闭:CLOSING基础知识基础知识基础知识基础知识————————三次握手与四次握手三次握手与四次握手三次握手与四次握手三次握手与四次握手18基础知识基础知识基础知识基础知识————————同时连接与同时关闭连接同时连接与同时关闭连接同时连接与同时关闭连接同时连接与同时关闭连接19基础知识小结基础知识小结基础知识小结基础知识小结20核心态与用户态系统调用进程组与会话进程的几种状态、僵尸进程、上下文切换虚拟内存、缺页中断、页面交换、巨页tcp连接状态虚拟化技术Q.为什么从这些概念开始?A.因为这些对于理解命令的输出大有裨益内容内容内容内容21常用监控命令基础知识在实战中综合运用培训目标1111222233334444LinuxtopLinuxtopLinuxtopLinuxtop命令命令命令命令————————汇总区域汇总区域汇总区域汇总区域22汇总区域显示五个方面系统性能信息负载:时间、登录用户数、系统平均负载进程:运行、睡眠、停止、僵尸CPU:用户态、核心态、NICE、空闲、等待IO、中断等内存:总量、已用、空闲(系统角度的)、缓冲、缓存交换分区:总量、已用、空闲LinuxtopLinuxtopLinuxtopLinuxtop命令命令命令命令————————任务区域任务区域任务区域任务区域23任务区域默认显示:进程ID、有效用户、进程优先级、NICE值、进程使用的虚拟内存、物理内存和共享内存、进程状态、CPU占用率、内存占用率、累计CPU时间、进程命令行信息使用交互命令f可选择更多列名列名列名列名描述描述描述描述列名列名列名列名描述描述描述描述PPID父进程IDCODE代码段大小RUSER实际用户DATA数据段+栈大小TTY终端名nFLT缺页中断次数P或者#C进程调度的CPUnDRT脏页数SWAP进程使用的交换分区大小…………LinuxtopLinuxtopLinuxtopLinuxtop命令命令命令命令————————交互命令交互命令交互命令交互命令(1)(1)(1)(1)24备注备注备注备注描述描述描述描述命令命令命令命令类型类型类型类型前置命令Z、x排序字段选择和倒序、顺序切换R字段顺序选择o排序字段选择F或者O任务区字段排列与排序前置命令Z色彩显示开关z前置命令Z运行状态高亮y前置命令Z排序字段高亮x色彩选择Z色彩进程信息开关t内存信息开关m负载信息开关字母lCPU模式切换数字1汇总区显示LinuxtopLinuxtopLinuxtopLinuxtop命令命令命令命令————————交互命令交互命令交互命令交互命令(2)(2)(2)(2)25备注备注备注备注描述描述描述描述命令命令命令命令类型类型类型类型手动刷新空格或回车保存设置W其它设置显示某个实际用户的任务U两者究竟有何区别?设置显示某个有效用户的任务u设置显示的任务数n或者#线程、进程显示切换H显示字段选择f命令行信息切换c任务区显示对于设置了粘着位的程序,有效用户与实际用户的区别LinuxiostatLinuxiostatLinuxiostatLinuxiostat命令命令命令命令————————主要命令行参数主要命令行参数主要命令行参数主要命令行参数26iostat-c:见top命令的CPU信息iostat-d:吞吐率、每秒读写、总的读写iostat-x:每秒读写次数、平均IO队列长度、平均每次IO操作总耗时、平均每次IO操作的实际执行时间、IO使用率一个隐藏的等式:%util=(r/s+w/s)*svctm/10LinuxiostatLinuxiostatLinuxiostatLinuxiostat命令命令命令命令————————案例分析案例分析案例分析案例分析(1)(1)(1)(1)27r/sr/sr/sr/sw/sw/sw/sw/savgqu-szavgqu-szavgqu-szavgqu-szawaitawaitawaitawaitsvctmsvctmsvctmsvctm%util%util%util%util……71.60125.0068.68356.604.7593.42……88.4074.2038.25236.095.4588.54……44.60124.0084.49510.515.7596.98遭遇IO瓶颈(71.60+125.00)*4.75=933.85(ms)(88.40+74.20)*5.45=886.17(ms)(44.60+124.00)*5.75=969.45(ms)那么,IO瓶颈有什么症状?%util很高await远远大于svctmavgqu-sz比较大LinuxiostatLinuxiostatLinuxiostatLinuxiostat命令命令命令命令————————案例分析案例分析案例分析案例分析(2)(2)(2)(2)28r/sr/sr/sr/sw/sw/sw/sw/savgqu-szavgqu-szavgqu-szavgqu-szawaitawaitawaitawaitsvctmsvctmsvctmsvctm%util%util%util%util……194.401.201.045.325.0598.70……174.001.801.045.905.6399.00……217.201.201.014.624.5098.28只是IO忙碌(194.40+1.20)*5.05=987.78(ms)(174.00+1.80)*5.63=989.75(ms)(217.20+1.20)*4.50=982.80(ms)为什么不算IO瓶颈?%util还是很高,比较容易迷惑人await接近svctm,略大一点点avgqu-sz不大LinuxdmesgLinuxdmesgLinuxdmesgLinuxdmesg命令命令命令命令29打印内核“环缓冲区”的信息内核“环缓冲区”保存Linux开机信息也记录某些程序的内存错误(segfault)LinuxlsofLinuxlsofLinuxlsofLinuxlsof命令命令命令命令(1)(1)(1)(1)30查看文件系统阻塞,解决umountbusy问题查看监听端口被哪个进程占用查看用户打开哪些文件LinuxlsofLinuxlsofLinuxlsofLinuxlsof命令命令命令命令(2)(2)(2)(2)查看进程打开哪些文件查看远程已打开的网络连接LinuxnetstatLinuxnetstatLinuxnetstatLinuxnetstat命令命令命令命令32netstatnetstatnetstatnetstat参数参数参数参数描述描述描述描述执行格式执行格式执行格式执行格式-r显示路由表netstat-r-i显示网络接口netstat-i-a显示所有socketnetstat-a或netstat-an-n显示IP与-a等参数联合使用常规用法小技巧汇总统计tcp连接状态查看端口被哪个进程占用LinuxpsLinuxpsLinuxpsLinuxps命令命令命令命令33ps-efHpsauxf显示进程派生树ps-efjpsauxj显示PGID和SIDps-efpsaux基本用法LinuxLinuxLinuxLinuxBSDBSDBSDBSD进程状态:D、R(unning)、S(leep)、T
本文标题:Linux常用监控命令介绍
链接地址:https://www.777doc.com/doc-4465106 .html