- 浏览: 378746 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
u014689192:
很不错
JMX学习笔记(三)-MXBean -
focus2008:
进制转换之后,根本不会执行js代码,感觉你没有测试过吧
xss漏洞之进制转换 -
focus2008:
如何使用过滤器来处理呢?
xss漏洞之进制转换 -
1169158401:
我艹,我那天这么写,包括一些方法,然后那货说这样写不容易看懂。 ...
import static简化代码 -
AquariusM:
奢华的JVM介绍!
JMX学习笔记(三)-MXBean
监控的目的是为了,找出系统的瓶颈,理解并分析当前系统的特点,现在多数的系统跑的是应用类型,例如:
1.数据库(Oracle, MySQL,等)
2.Cache服务(Memcached, Squid等)
2.应用服务器(Tomcat, Apache,Nginx, Jboss, sendmail等)
其实这些应用软件大致可以分为两类:
1. 数据读取范畴(I/O 请求占用多数时间)
在这个范畴的应用软件,基本是处理高负荷的内存使用以及存储的系统,大量的时间处在数据处理的过程中,多半的软件不会对CPU发起更多的处理请求,当然这些软件也使用CPU,但都是为了产生I/O请求一集进入到内核态中断所发起的请求。
2. 数据处理范畴(CPU计算占用多数时间)
处在这个范畴的应用软件,基本是高负荷的CPU占用为主,以及高密度的数学计算,通常web服务器,Tomcat,Jboss这样的应用服务器,或者一些中间件都是这个范畴的应用软件。
在这里我们先介绍一下CPU范畴居多的服务器,怎么监控CPU的性能:
1.安装监控工具
标准的Linux发行版里都带有了top命令,除此意外还有一个sysstat的linux监控工具,可以使用
http://sebastien.godard.pagesperso-orange.fr/
sysstat里包括了一系列的监控工具,比较常用的有vmstat, mpstat, iostat
首先我们使用vmstat来看一下输出:
[root@localhost ~]# vmstat procs ------memory------ ---swap-- -----io--- ----system----- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 424904 14784 45484 0 0 29 2 26 14 0 1 99 1
这里简单解释一下几个比较重要的列所代表的含义:
列名称 | 含义 |
r | Run Queue, 表示当前CPU运行队列中线程的数目,代表线程出于可运行状态,但CPU尚未执行。 |
b | Blocked, 表示当前进程阻塞并等待I/O请求完成的数目。 |
in | Interrupts, 当前终端被处理的数目。 |
cs | Context Switch, 表示当前系统内核中,发生上下文切换的数目。 |
us | Utilization, 表示CPU利用率百分比。 |
sys | System kernel and Interrupts, 表示内核中断利用率的百分比。 |
wa | All runnable threads are blocked waiting on I/O, 表示所有可运行状态的线程被阻塞在I/O的百分比。 |
id | Idle, CPU空闲时间百分比。 |
这里产生了一个系统性能的快照,监控CPU,我们最关心的莫过于CPU使用率,这系统输出中---cpu---下的id列,代表CPU空闲时间百分比,idle的缩写,这里数值是99,表示系统非常空闲,同时r,b,us数值均为0,in与cs 也出于很低的数值位,总体数值表明该系统非常空闲,几乎不做任何事情。
下边给一个系统比较繁忙的例子,并且持续监控10秒
[root@localhost ~]# vmstat 1 procs ---------memory--------- ---swap--- -----io---- -----system----- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa 3 0 207689 15094 80387 156631 0 0 0 2 726 26 82 20 0 0 2 0 207689 14768 80387 156165 0 0 0 2 738 23 96 3 0 0 1 0 207689 14723 80387 156774 0 356 0 2308 987 80 93 16 0 0 2 0 208352 13815 79183 156393 0 356 0 1038 667 62 91 13 0 0 1 0 208352 301812 77132 155414 0 0 0 2 873 24 87 6 0 0 3 0 208352 301812 77132 155547 0 0 0 2589 896 36 92 11 0 0 4 0 208352 301812 76062 155751 0 0 0 2 850 30 91 12 0 0 4 0 208352 301812 76062 155482 0 0 0 2 736 26 88 6 0 0 2 0 208352 301812 76103 155823 0 0 0 2 812 23 85 7 0 0 0 0 208352 301812 76103 155979 0 0 0 2 887 21 77 9 1 0
根据上边的数值,我们可以观察到:
1. in的数值很高,说明有大量的中断请求,而cs的数值较少,上下文切换较少,这说明可能有一个进程在产生对硬件设备的请求。
2. us平均数值在85以上,而cs的数值不高,说明上下文切换很少, 这说明这个应用程序很可能还在CPU里被处理。
3. r的数值有正常范围应该在1-3个以内,显然有2个4,这说明,超出了限制。
这里简单介绍一下r的含义:
r死Runnable Queue, 实际上每个CPU都维护这一个线程的运行队列,调度器应该不断的切换,并且执行线程, 当进程中的线程不是在阻塞队列中,或者等待I/O中,那么 就是在可运行状态中, 如果CPU出于高负荷状态下,那么内核调度将无法及时响应系统请求,这会使可运行状态进程的线程阻塞在运行队列里,随着队列越来越大,进程中的线程将话费更多的时间等待被执行。
大家可以用top命令查看系统的平均运行队列状况,在top中叫做load averages, top中列出的是指,1,5,15分钟内的运行队列状况。
下边再介绍一个工具 mpstat
这个工具主要是用在多核的处理器中, 你可以使用mpstat来监控每个核的处理情况.
[root@localhost ~]# mpstat -P ALL 1 Linux 2.6.35.14-95.fc14.i686 (localhost.localdomain) 2011年08月28日 _i686_ (1 CPU) 18时52分19秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 18时52分20秒 all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 18时52分20秒 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 18时52分20秒 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
mpstat命令打印出的CPU利用率基本与vmstat一致,但是mpstat可以基于单个处理器计算统计的数值:)
评论
while :; do ps -eo pid,ni,pri,pcpu,psr,comm | grep -E "(^| )mysqld($| )"; sleep 1; done
如果想分析历史,写日志到文件里即可
哥们,想记录历史,你得留日志,分析日志方可分析历史
发表评论
-
删除/usr/share/vim目录后恢复
2012-03-11 02:34 3899蛋疼的将/usr/share/vim/ 目录删除后,vim启动 ... -
Shell 统计PV, UV ,独立IP
2011-11-06 15:07 13613每天分析日志的哥们实在伤不起,经常需要给出PV,U ... -
Linux之文件系统浅析
2011-09-05 00:26 3696我们首先看一下一个简 ... -
LVS NAT模式简介
2011-07-20 01:46 16702LVS 简称 Linux Virtual Server,在实际 ... -
tomcat关不掉的原因
2011-07-12 23:51 43534tomcat/bin 目录下的catalina.sh是比较常用 ... -
Linux下最好用的播放器
2011-04-09 22:50 2576很久以前一直流行mplayer,但是编译安装都很复杂,需要很多 ... -
SElinux 配置
2011-01-20 02:54 3101selinux 是个安全性极高的软件,在安装了发行版linux ... -
VitrualBox NAT 端口映射
2010-11-10 15:33 2143以NAT方式启动VBox中的Linux,会发现本机无法访问虚拟 ... -
Linux下配置JDK环境变量
2010-08-19 00:47 1294一般人都习惯直接修改/etc/profile文件,但是 ... -
Linux 在一块网卡上绑定多个IP
2010-04-26 00:57 4913配置虚拟主机时有一种方式是在一块网卡上绑定多个IP,操作如下: ... -
修改rhel5.4 yum 更新源
2010-04-25 16:46 2303rhel没有license是没有办法进行更新的,但是CentO ... -
Linux启动网卡
2010-02-06 00:47 3727ifconfig命令可以用于查看Linux活动网卡与IP地址、 ... -
rhel修改root密码
2010-02-05 23:00 1746在安装完Linux的时候突然忘记了root密码,可以先 ... -
VirtualBox3.1.2安装Fedora12后无法启动图形界面问题
2010-02-03 23:04 2784VirtualBox真是个好东东,无缝模式集成进win ... -
Shell if 中的参数详解
2010-01-25 23:23 1921在shell中,经常会遇到像这样的参数: JAVA={$J ... -
Linux时间系统
2009-11-30 17:38 1947这里先讲述一下时间在Linux中的概念: 1.RTC(Real ... -
linux下使用rar解压缩
2009-11-01 22:08 1359默认linux中只带了tar,zip,gzip压缩工具 ... -
firefox3.5在linux 64中无法显示flash
2009-11-01 11:12 1534可能是由于firefox版本过低,现在我已经通过更新firef ... -
Linux运行级别详解
2009-10-27 16:31 1683在设置服务的时候 ... -
设置Linux服务
2009-10-27 15:52 1283其实服务在linux下也就是一段shell,copy到相 ...
相关推荐
赋权后运行./CPU_test >>/opt/CPU.log,产生log文件分析CPU利用率
6. **性能监控工具**:除了测试工具,Linux还提供了一些性能监控工具,如`gtop`、`glances`和`systemd-cgtop`,它们能直观地显示CPU使用情况,帮助用户实时了解系统状态。 7. **安全和稳定性**:CPU测试不仅仅是...
- 脚本可能通过监控`/proc/stat`文件获取CPU利用率信息,该文件提供了系统运行状态的实时统计。 - 脚本会自动排除自身占用的CPU%,确保计算的CPU使用率反映的是其他进程的使用情况。 - 当CPU使用率低于某个设定...
本资源“linux-cpu.zip”包含了一个名为“cpu.c”的源代码文件,该文件提供了实现监控Linux系统CPU使用率的功能。接下来,我们将详细讨论相关知识点。 1. **Linux系统调用**: - `cpu.c` 源码很可能使用了Linux...
Scavenger是一个软件项目,版本号为1.9.0,专为ARMv7架构的处理器设计,适用于基于Linux的系统,并且仅包含CPU相关的功能,不涉及GPU或其他硬件加速。"gnueabihf"是针对ARM处理器的GNU EABI(Embedded Application ...
总的来说,"wrapper-linux-x86-64-3.5.55 社区版"是Linux环境中的一款强大工具,通过它可以轻松地管理和监控Java应用,提高系统的可靠性。对于那些依赖Java服务的企业和开发者,熟悉并掌握Wrapper技术是提升运维效率...
- 监控与报警:设置监控指标,如CPU使用率、内存占用和网络延迟,及时发现并解决问题。 总结,etcd-v3.5.0-linux-amd64是一个强大的工具,用于构建高度可用的分布式系统。了解其工作原理、如何部署和使用,以及...
Linux运维-运维构架师-高级运维架构师-Day10-监控zabbix-05.系统监控-CPU.mp3
linux get_thread_cpu线程cpu 监控脚本
3. **运维**:运维是指对IT系统的运行和维护,包括服务器监控、故障排查、性能优化、备份恢复等。在部署JDK时,运维人员需要关注CPU、内存使用情况,以及如何通过JMX、VisualVM等工具进行性能分析。 4. **服务器**...
6. **Java性能分析工具**:如JVisualVM,它提供了一种可视化的方式来监控Java应用的性能,包括CPU、内存、线程等。 7. **Java打包工具(jar)**:用于创建和管理Java归档(JAR)文件,便于模块化和分发Java程序。 ...
它能够暴露系统级别的监控数据,如CPU使用率、内存消耗、磁盘I/O和网络活动等,这些数据可以被Prometheus服务器抓取并用于性能分析和故障排查。在本篇文章中,我们将深入探讨`node_exporter-1.1.2.linux-amd64.tar....
对于**服务器运维**,配置好JDK是基础,而了解如何管理和优化JVM(Java Virtual Machine)性能,监控Java应用的内存、CPU使用情况,以及日志管理等都是关键技能。此外,熟悉Linux系统的常用命令和性能监控工具(如...
总的来说,Pushgateway在Linux环境中提供了一种便捷的方式来集成对短生命周期服务的监控,是Prometheus监控解决方案的重要补充,对于运维人员来说,理解其工作原理和使用方法是提升监控效率的关键。
6. 监控与调优:为了确保在ARM架构上JDK1.8的稳定运行,开发者需要监控JVM的性能指标,如垃圾回收、内存使用、CPU负载等,并根据实际情况进行JVM参数调优。 总结来说,"jdk-8u261-linux-arm64-vfp-hflt.tar.gz"是...
综上所述,MySQL Exporter是Prometheus监控MySQL数据库的关键工具,通过它你可以监控MySQL的CPU使用率、内存消耗、查询延迟等关键指标,从而更好地管理和优化你的数据库系统。正确地安装和配置MySQL Exporter,能够...
通过学习这个“Linux运维-11-Linux云计算-监控-监控概述”的课件资料,你将掌握如何在复杂的云计算环境中实施有效的监控策略,从而提升系统的稳定性和可靠性。同时,这也会帮助你更好地理解Linux运维的工作流程,...
安装Oracle数据库补丁时,遵循最佳实践至关重要,包括测试补丁在非生产环境中的影响、了解补丁内容以及密切监控安装过程。此外,保持数据库软件的最新状态,不仅可以提升系统安全性,还能确保获得最新的性能优化和...
1. **系统配置**:确保系统满足Oracle 11g RAC的硬件和软件要求,例如内存、CPU、磁盘空间等。同时,安装必要的开发工具、编译器和库,如gcc、make、kernel-devel等。 2. **网络配置**:设置适当的网络环境,包括...
总结来说,Node Exporter是Prometheus监控系统中不可或缺的一部分,它专注于收集Linux系统的各种硬件和软件指标,使得Prometheus能更全面地理解并监控Linux环境。通过深入理解和有效利用Node Exporter,我们可以更好...