Java 性能调优工具
来源:互联网 发布:如果大幅贬值 知乎 编辑:程序博客网 时间:2024/06/05 22:53
CPU使用率
工具: vmstat
- 检查应用性能时,应该首先审查CPU时间。
- 代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率。
- 在试图深入优化应用前,应该先弄清楚为何CPU使用率低。
磁盘使用率
工具: iostat
- 对于所有应用来说,监控磁盘使用率非常重要。即便不直接写磁盘的应用,系统交换仍会影响它们的性能。
- 写入磁盘的应用遇到瓶颈,是因为写入数据的效率不高(吞吐率太低),或者是因为写入太多数据(吞吐率太高)。
网络使用率
工具: netstat
nicstat
- 对于基于网络的应用来说,务必要监控网络以确保它不是瓶颈。
- 往网络写数据的应用遇到瓶颈,可能是因为写数据的效率太低(吞吐率太低),或者是因为写入了太多数据(吞吐率太高)。
Java监控工具
jcmd
: 打印java进程涉及的基本类,线程和VM信息。jconsole
: 提供JVM活动的图形化视图,包括线程的使用,类的使用和GC活动。jhat
: 读取内存堆转储,并有助于分析。jmap
: 提供堆转储和其他JVM内存使用的信息。jinfo
: 查看JVM的系统属性,可以动态设置的一些系统属性。jstack
: 转储Java进程的栈信息。jstat
: 提供GC和类装载活动的信息。jvisualvm
: 监视JVM的GUI工具,可以用来剖析运行的应用,分析JVM堆转储。
Can’t attach to the process
jinfo -sysprops ${process_id}Attaching to process ID 18401, please wait...Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the processsun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.execute(LinuxDebuggerLocal.java:163) at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach(LinuxDebuggerLocal.java:278) at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:671) at sun.jvm.hotspot.HotSpotAgent.setupDebuggerLinux(HotSpotAgent.java:611) at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:337) at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304) at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140) at sun.jvm.hotspot.tools.Tool.start(Tool.java:185) at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118) at sun.jvm.hotspot.tools.JInfo.main(JInfo.java:138) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.tools.jinfo.JInfo.runTool(JInfo.java:108) at sun.tools.jinfo.JInfo.main(JInfo.java:76)Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach0(Native Method) at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.access$100(LinuxDebuggerLocal.java:62) at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$1AttachTask.doit(LinuxDebuggerLocal.java:269) at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.run(LinuxDebuggerLocal.java:138)
- 临时解决方法:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
该方法在下次重启前有效。
- 永久有效方法:
sudo vi /etc/sysctl.d/10-ptrace.conf
将下面这行: kernel.yama.ptrace_scope = 1
修改为: kernel.yama.ptrace_scope = 0
重启系统,使修改生效。
参考链接: SA, jinfo, jmap, jstack don’t work on Ubuntu
阅读全文
0 0
- Java性能调优工具
- Java性能调优工具
- java性能调优工具
- Java 性能调优工具
- java 性能调优工具 - linux
- Java性能调优工具集锦
- java性能调优工具--笔记
- Java性能监控及调优工具
- Java常用命令及性能调优工具
- Java性能调优工具(Linux)
- Java性能调优工具“JRMC”的介绍
- Java性能调优工具JRockit Mission Control
- Java性能调优工具JRockit Mission Control
- Java项目性能监控和调优工具-Javamelody
- Java项目性能监控和调优工具---------------Javamelody
- Java项目性能监控和调优工具-Javamelody
- Java项目性能监控和调优工具-Javamelody
- Java项目性能监控和调优工具-Javamelody
- 深入浅出 NXLog (二)
- CSS,font-family,好看常用的中文字体
- View的工作流程-Layout过程
- 客户消费行为预测的3种计算方法
- mysql(8):基础,LIKE 子句的语法介绍
- Java 性能调优工具
- 适配器模式具体使用
- 红屏问题"Could not get BatchedBridge, make sure your bundle is packaged correctly"
- Android Tablayout 自定义Tab布局的使用
- golang去除多余空白字符(含制表符)
- API登录接口文档事例
- 百度地图电子围栏+ztree
- CocoaPods详解之----进阶篇
- java获取当前class文件所在路径