JVMのデフォルト設定を表示する
コマンド: java -XX:+PrintFlagsInitial -version
JAVAプログラムの実行中に特定のJVMパラメータが有効になっているかどうかを確認します
コマンド:
1 使用jps或ps -ef|grep java 找到进程号
。;
2 jinfo -flag 配置项 进程编号 (不加配置项输出所有配置)
。;
注:
JVM XXパラメーター構成には2つのタイプがあります:
1 Boolean类型:-XX:+/- 配置项。+ 代表开启,- 代表关闭
。;
2 KV设置类型:-XX:属性key=属性值value。eg:-XX:MaxTenuringThreshould=31
。;
JVM共通構成
-Xms:等价于-XX:InitialHeapSize,初始化最小堆内存,默认为物理内存的64/1
;
-Xmx:等价于-XX:MaxHeapSize,初始化最大堆内存,默认为物理内存的4/1
;
-Xss:单线程栈大小,默认为512k ~ 1024k
;
-XX:MetaSpaceSize:元空间大小,使用的物理内存
;
-XX:+ PrintGCDetails: 打印GC详细信息
。
トラブルシューティング
JAVAアプリケーションのメモリが多すぎます:
1 使用jmap -heap pid 查看内存使用情况,看看是否有内存溢出
。;
2 使用jmap -dump:live,format=b,file=filename pid 生成dump文件通过Mat工具进行分析
。;
JavaアプリケーションCPUが高すぎます:
1 使用ps -mp pid -o Thread,tid,time 定位到具体的java线程。m代表显示所有的县城,-o代表该参数后面是用户自定义格式
。;
2 把过高的线程转换成16进制
。;
2 jstack pid | grep tid(16进制)-A100 定位到具体的代码。-A代表显示多少行
。;
サーバリソース:トップ:
:; ;查看整机情况
主要看load average 1分钟、5分钟、15分钟的平均负载情况。还有cpu\mem
可以使用top -p pid查看单个进程的信息
vmstatの:查看cpu
;
vmmstat -n 2 3 间隔2秒,总共取样3次,主要看us、sy.代表用户进程消耗cpu百分比和系统进程消耗cpu百分比
;
可以使用pidstat -u 1 -p pid 查看单个进程的cpu信息
;
無料-m:查看内存
;
可以使用pidstat -r 1 -p pid 查看单个进程的内存信息
;
DF -h:查看磁盘使用情况
;
可以使用pidstat -d 1 -p pid 查看单个进程的磁盘信息
;
iostatの:检查Io情况
;
依存コンポーネント:
MySqlなど:クエリが遅い、IOが高い、デッドロック。