zoukankan      html  css  js  c++  java
  • 系统命令学习

    好好的看了gx的命令分享的ppt以及提供的资料,而且自己上网查了一些资料,整理了这个文档。参照网上相关资料,再结合自己的理解,梳理出该文档,文档中可能有一些错误,因为有些地方是个人理解,本身在平时工作系统命令使用甚少,而且大部分摘自网上,正确和严谨性无从考证,希望阅读之人能带着批判的眼光来看待此文。文档已经上传百度文库 ,因为博客编辑太费事,还是word编辑比较顺手(实际上是懒~)。

    学习了这几个命令(top,mpstat,vmstat,iostat,sar等),有以下几个共同的特性:

    1)每个命令都统计了系统的cpuio,内存的使用情况。

    这更加说明了各个子系统相互依赖,要分析某个子系统是否是系统瓶颈,必须结合其他子系统的运行情况进行分析。比如说cpu的大量使用,必然伴随着内存的大量使用;io的大量磁盘读写也必然牵涉到内存的大量使用;如果io等待的时间过长,说明io是系统瓶颈,同时也引起cpu处于阻塞的状态。为了从分使用各个资源,将cpu密集型程序和io密集程序交替运行。

    2)每个命令基本都可以静态和动态的观察资源的使用情况

    静态数据是统计当时那一秒系统各个资源的使用情况。动态可以设置统计时间间隔和统计次数,这样可以看到随着程序的运行,系统的资源是如何分配的——cpu进程切换,内存换页,io读写等

    3)每个命令统计的参数都差不多

    每个命令统计的都是cpu,内存,io的使用情况。cpu主要用于计算和进程切换,在切换的过程中,各个进程有各自的状态。按照cpuTime = user + nice + system + idle + wait + hirq + softirq + stealstolen + guest。故有如下的统计指标:
    us% = (user + nice) / cpuTime
    sy% = (system + hirq + softirq) / cpuTime
    id% = (idle) / cpuTime
    wa% = (wait) / cpuTime
    hi% = (hirq) / cpuTime
    si% = (softirq) / cpuTime
    steal% = (steal) / cpuTime
    guest% = (guest) / cpuTime

    为了按需分配内存,将程序分段装入内存,又为了更灵活的加载内存和提高内存的利用率,最大限度为多个进程提供内存服务。引进了虚拟内存的概念。虚拟内存=物理内存Mem+swap空间。swap空间是采用磁盘空间来当内存用。swap空间一般是物理内存的两倍。在进程中,物理内存主要用于data+stack+code。在整个系统来看Mem=used+buffer+cache+free,主要用于写入块设备前用来保存数据的block buffer和从文件中读取到内存page cache以备使用,还有一部分用于保存常驻内存的寄存器等信息。而swap空间主要用于出现缺页中断的时候换入换出。所以需要了解swap情况。所以有si,so,pagein,pageout的相关信息。

    io主要统计读写的速率和读写请求次数,每秒块设备读写了多少数据。所以有w/s, r/s, wKB/s ,rKB/s 等统计指标。

    4)每个命令统计都各有侧重点,各有适用场景

    如果要观察cpu,主要使用mpstat,top等参数,如果观察内存主要使用vmstat,top等参数,io当然是采用iostat参数,观察网络流量可以看看sar参数。

    5)具体问题具体分析,实践是检验整理的唯一标准

    目前我接触的问题排查主要是与业务相关的,主要是看日志,查代码,找到问题数据复现问题。很少排查系统级别的问题,还是需要多结合实际案例。平时遇到问题了,多分析分析。先梳理下思路,然后逐一验证,别一头雾水如无头苍蝇般去处理。先看问题现象,再分析可能原因,之后逐一验证猜想,找到问题症结。如果系统很卡,就看看cpu,内存使用情况,结合当前业务,如果是数据库出现延迟等,看看io等相应参数。纸上得来终觉浅,绝知此事要躬行。

  • 相关阅读:
    .net学习笔记----WebConfig常用配置节点介绍
    .net学习笔记----会话状态Session
    .net学习笔记---HttpRuntime类
    最优化基础(三)
    最优化基础(二)
    最优化基础(一)
    非精确线搜索
    精确线搜索——抛物线法
    Matlab自定义函数的几种方法
    精确线搜索-黄金分割法
  • 原文地址:https://www.cnblogs.com/TsingLo/p/4523092.html
Copyright © 2011-2022 走看看