当前位置 > 主页 > 万和大讲堂 >


16个Linux服务器监控命令必知

2015-06-17 11:13

  如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的Linux系统管理员。


  有些Linux发行版会提供GUI程序来进行系统的监控,例如SUSELinux就有一个非常棒而且专业的工具YaST,KDE的KDESystemGuard同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些GUI的程序占用了很多系统资源,所以说,尽管GUI用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉GUI开始命令行之旅吧。


  你应该只在需要的时候去启动GUI,不用的时候关掉它。如果要让服务器保持最佳性能,你应该将Linux服务器的运行级别runlevel设置为3,就是控制台模式,当你需要图形化桌面的时候使用startx命令来启动它。


  如果你的服务器启动后就直接进入图形界面,你需要修改配置/etc/inittab找到initdefault一样,将id:5:initdefault修改为id:3:initdefault。南京RHCE认证培训


  如果你没找到/etc/inittab文件,那就创建一个新的,文件内容增加id:3这么一行。这样下次服务器启动的时候就不会进入图形界面。如果你不想等到服务器重启的时候才生效,你可以执行init3这个命令。


  一旦你的服务器是在控制台模式下运行,你就可以开始我们接下来的内容。


  iostat


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


  meminfo和free


  Meminfo可让你获取内存的详细信息,你可以使用cat和grep命令来显示meminfo信息:


  1cat/proc/meminfo


  另外你可以使用free命令来显示动态的内存使用信息,free只是给你大概的内存信息,而meminfo提供的信息更加详细。例如在oschina上的free命令执行结果:


  mpstat


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


  再来看看oschina上的mpstat命令执行结果:


  netstat


  Netstat和ps命令类似,是Linux管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如socket的使用、路由、接口、协议、网络等等,


  nmon


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


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


  在每日的监控工作中,我发现nmon是我最常用的工具。


  pmap


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


  ps和pstree


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


  sar


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


  strace


  strace经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。南京RHCE认证培训


  Strace也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用。


  tcpdump


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


  top


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


  uptime


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


  vmstat


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


  在oschina上执行vmstat的结果:


  Wireshark


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

最近开班 more>
  • Python基础班
  • Java全栈开发
  • 前端基础班
  • 软件测试
  • 云原生精英班
  • 云网预科班
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 随时开课
  • 12月26日
  • 随时开课
  • 12月4日
  • 12月16日
  • 12月9日
  • 12月21日
  • 1月6日
  • 12月30日
  • 12月16日
  • 12月21日
  • 12月7日
  • 12月7日
  • ——
  • 随时开课
  • 12月16日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入