cpu分为用户级的CPU和系统级的CPU,用户态是运行应用程序所占cpu时间百分比,系统态是应用程序调度所占cpu时间百分比。
1、系统CPU利用率高是什么原因?
答:系统中断和切换频繁很耗用CPU,共享资源竞争,大量io交互。CPU太差,主频太低,都是形容 CPU差。
苹果系统一直是单线程,因为这样减少了N多插队的请求导致的中断减速。
答:用户态高原因 程序运算量大。
3、下面IO高的原因是?
读写量大;磁盘太慢,是因为转速慢,或者磁头少,或者RAID 型号不太OK(RAID 有 0 1 5 10 100 等等,有的可以做存储盘,有的可以做备份盘) ;
内存不足,操作系统就会用虚拟内存,肯定要用系统的交换区了,比如LINUX 的SWAP,就造成分页增多;
4、下面哪些是内存利用率高的原因?
系统CPU利用率太高;用户CPU利用率太高;IO太高
5、我们监控Java程序的线程状态的目的是什么?
可以监控到程序运行是否正常(是否快)
可以监控到哪些线程慢
可以Dump线程信息,从中找出中哪些程序在运行
可以监控到死锁
监控Java程序的线程状态 目的是 有无死锁 有无 很快 很慢的 ,线程属于哪些程序
6、Java应用我们常监控其Heap信息,有什么作用?
通过监控Heap信息能够统计出GC的影响
通过监控Heap信息能够确认Heap内存是否够有
通过监控Heap信息能够检查出大对象
从Dump的heap信息中可以分析程序是否有内存溢出风
HEAP 是新生代 老代 的关系
GC 的关系
8.下面的选项中哪些是Tomcat用来调整性能的?
Tomcat线程池,TOMCATE 连接池 ~~决定餐馆排队的人数
Tomcat连接数,TOMCATE 链接数 决定 餐厅有多少桌子
Tomcat Heap空间调整, TOMCATE HEAP 空间 决定 餐厅多少地盘
Tomcat运行模式
8、TOMCATE三种模式
1)bio 默认的模式,性能非常低下,没有经过任何优化处理和支持.
2)nio 利用java的异步io护理技术,no blocking IO技术.
3)apr 从操作系统级别来解决异步的IO问题,大幅度的提高性能.
9.系统吞吐量小,资源利用率低的可能原因是
负载不够没能真实反映系统性能
线程池设置太小导致 数据库连接池设置太小
Heap空间设置太小
10.系统吞吐量小资源利用率高,可能原因是
吞吐量小的是意思 差不多就是TPS 低。SQL太慢;IO瓶颈;系统调用多(就是CPU中断多);大量的Order by 排序操作