生产环境监测

生产环境监测

服务器性能日常监测
  1. 服务器平均负载是什么意思?

服务器平均负载指的是在单位时间内系统处于可运行状态或不可中断状态的进程的平均数,即活跃平均数,它与CPU和使用率没有直接关系。

(1)不可运行状态指的是 正在等待某些IO访问且不可以被打断的进程,例如等待对磁盘进行I/O进程访问

(2)可运行状态是指 正在使用CPU或者等待使用CPU的进程
  1. 如何通过负载衡量性能 ?
    1. 通过uptime命令可以看出 平均负载有3个值,最近一分钟的平均负载,最近5分钟的平均负载和最近15分钟的平均负载。从平均负载的定义中可以看出,系统平均负载是和CPU有关系的,所以最理想的情况下是每个CPU都运行着一个进程,这样CPU就得到了充分的利用。
      1. 获取CPU数量 cpuinfo
      2. 如何衡量
        1. 如果 3个时间段的平均负载值相差不是很大,则表达式当前系统比较稳定
        2. 如果最近1分钟的平均负载小于15分钟的平均负载值,则表示当前系统的负载正在下降。
        3. 如果最近1分钟的平均负载值要高于15分钟的平均负载值,则表示当前系统的负载正在升高,需要再次观察多个时间段。
    2. 平均负载与CPU使用率的区别
      1. 平均负载既包含正在使用CPU的进程,还包含等待CPU和等待进行I/O的访问进程。CPU使用率表示单位时间内CPU的繁忙程度,它和平均负载并不完全一致。
        1. CPU密集型进程会占用大量CPU资源,从而导致平均负载升高。
        2. 对于I/O密集型进程,等待I/O过程也会导致平均负载升高,但CPU使用率不一定升高。
        3. 大量等到CPU的进程调度,不仅会导致平均负载升高,也会导致CPU使用率升高。
  2. 为什么经常被问到 CPU上下文切换?
    1. 什么是CPU上下文切换?
      1. CPU上下文切换有三种
        1. 进程上下文切换 进程的执行是受操作系统管理的,当一个进程被从内核中移出,另一个进程开始执行时,在这2个进程当中会存在上下文切换
        2. 线程上下文切换 线程上下文是指某个时间段CPU寄存器和程序计数器的内容。CPU是通过时间片分配算法来循环执行任务的,而时间非常短,所以CPU会不停切换线程。
        3. 中断上下文切换 为了能快速响应硬件的事件,中断处理会打断正常的进程,进而去执行中断程序响应硬件的事件。
    2. 如何查看系统的上下文切换情况
      1. 使用 vmstat 指令: vmstat 5 采集数据并且查看
  3. 如何 快速分析CPU 的性能瓶颈?
    1. 影响CPU性能的指标有哪些?
      1. CPU使用率
        1. 用户CPU使用率,CPU在用户态运行时间占总CPU运行时间的百分比,这个值越代表应用程序繁忙
        2. 系统CPU使用率,CPU在系统态运行时间占总CPU运行时间的百分比,这个值越大代表内核越繁忙
        3. 等待I/O的CPU使用率 等待I/O时间占总CPU运行时间的百分比,这个值越大,代表系统与硬件设备的交互时间越长。
        4. 软中断CPU使用率, 内核调用软中断处理程序的时间占总CPU运行时间的百分比。这个值越大代表系统发生的中断越多。
        5. 硬中断CPU使用率,内核调用硬中断处理程序的时间占总CPU运行时间的百分比。
      2. 平均负载
      3. 上下文切换
      4. CPU缓存命中率 CPU的处理速度比内存处理速度块很多,CPU在访问内存时需要拜拜浪费等待内存响应的时间。CPU缓存用于解决CPU速度与内存速度不匹配的问题。
      5. CPU性能分析工具 top\vmstat\pidstat
优化服务器性能
  1. CPU性能优化方法论?

    1. 应用程序优化:用吞吐量和请求延迟啦评估应用程序的性能

      1. 编译器优化
      2. 算法优化
      3. 异步处理
      4. 多线程代替多进程
      5. 利用好缓存
    2. 系统优化: 用CPU使用率来评估系统的CPU使用情况。

      1. CPU绑定
      2. CPU独占
      3. 调整优先级
      4. 为进程设置资源限制
      5. NUMA优化
      6. 中断负载均衡
  2. 定位和处理内存泄露问题

    1. 内存的分配和回收
      1. 只读内存段
      2. 数据内存段
      3. 栈内存段
      4. 堆内存段
      5. 文件映射段
    2. 内存泄露的定位和处理
      1. 通过vmstat工具查看内存是否变动异常
      2. 使用top工具查看占用内存空间不正常的进程
      3. 使用memleak工具监测内存泄露。
Java虚拟机的生产调优
  1. JVM内存模型分析 JVM内存共有5大内存区域,堆内存、程序计数器、方法区、虚拟机栈、本地方法栈。
    1. 方法区 方法区被称作 永久代,它是JVM中的一块内存区域,主要用来存放.class文件中加载进来的类。
    2. 程序计数器 开发人员编写的Java应用程序会被编译成字节码,字节码对应着各种指令。需要有一个东西来记录指令执行到哪里去了。
    3. 虚拟机栈 每个线程都有自己的虚拟机栈,用来存放它执行的方法中的局部变量等数据。
    4. 堆内存 我们构造出来的各种对象都会被放在Java堆中。
    5. 本地方法栈 虚拟机栈用来管理Java函数的调用,而本地方法栈用来管理本地方法。本地方法并不是用Java语言实现的,而是用C与语言实现的。比如在Java类库中好多是用native表示的本地方法。
JVM优化的思路
  1. JVM GC垃圾回收原理

    当新生代Edem区存放空间满了之后,则检查老年代可用内存空间是否大于Edem区所有对象的大小

    1. 如果大于 则直接进行新生代垃圾回收
      1. 垃圾回收之后的存活对象会被放到S区 包括 S1和S2
      2. 在复制之后,如果S区内存空间不够存储复制来的对象,则会利用担保规则直接进入老年代
      3. 当S区对象年龄超过设置的值,或S区同龄对象超过内存空间一半时,也直接进入老年代
    2. 如果小于 则根据HandlePromotionFailure查看老年代可用内存空间是否大于"历次进入老年代的平均对象大小"
      1. 如果大于 则尝试Minor垃圾回收;如果小于则直接进行Full回收,之后在进行Minor回收
      2. 如果在垃圾回收完毕后老年代依然没有足够的存储空间,则会发生内存溢出。
  2. 年轻代垃圾回收的调优思路

    1. 对于部署在大内存机器上的应用,推荐使用G1垃圾回收期。
  3. 老年代垃圾回收调优思路

    1. 什么对象能进入老年代?
      1. 对象年龄太大
      2. 在年轻代发生一次垃圾回收之后,发现S区域i中几个年龄的对象所占的内存空间加起来超过了Survivor区域的50%
      3. 在年轻代发生垃圾回收后,剩余的存活对象太多,Survivor区域无法承载。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容