1、線上系統查看命令html
(1)查看系統限制java
cat /proc/sys/kernel/pid_max #查看系統支持的最大線程數(至關於理論值) cat /proc/sys/kernel/thread-max max_user_process(ulimit -u) #系統限制某用戶下最多能夠運行多少線程 cat /proc/sys/vm/max_map_count #硬件內存大小
(2)JVM虛擬機自己限制redis
-Xms #Inital java heap size -Xmx #Maximum java heap size -Xss #The stack size for each thread
(3)查詢當前某程序的線程或者進程數tomcat
pstree -p `ps -ef|grep XXX |awk '{print $1}'`|wc -l 或 pstree -p PID |wc -l
示例:多線程
獲取Tomcat進程PID ps -ef|grep tomcat 統計該tomcat進程內的線程個數 ps -Lf PID|wc -l
(4)查詢當前整個系統已用的線程或者進程數elasticsearch
pstree -p | wc -l
參見:http://lisiqi.cc/技術/2015/12/24/一次線上多線程bug修復.htmltcp
(5)內存使用狀況查詢性能
./jstack pid|grep "on condition" |wc -l A.heap usage jmap -heap pid B.dump文件 jmap -dump:live,format=b,file=XXX.bin pid
參考:http://www.cnblogs.com/hechao123/p/7251682.html優化
一次Tomcat hang住問題排查手記:https://www.zybuluo.com/zhanjindong/note/25710.net
Tomcat性能參數優化:http://blog.csdn.net/fcly2013/article/details/54945591
Java服務線上系統性故障:http://techblog.youdao.com/?p=961
(6)指定端口的TCP鏈接數
netstat -an|grep 7090|wc -l #查看某個端口TCP鏈接來源並排序 netstat -antl|grep ^tcp|grep ":2181"|awk '{print $5}'|awk -F":" '{count[$1]++}; END{for(ip in count) print ip, ":" count[ip]}' |sort -n -k3 -r #找到最多的TCP對應的機器,在那臺機器上查看哪一個進程佔用的最多鏈接 netstat -anp|grep ":2181"|awk '{print $7}'|awk -F"/" '{print $1}'|sort|uniq -c|sort -nr
2、線上系統啓動
(1)redis啓動
src/redis-cli -h 10.2.137.141 -p 6379 Server模塊 nohup /data01/public/redis/redis_cluster1/src/redis-server /data01/public/redis/redis_cluster1/redis.conf & nohup /data01/public/redis/redis_cluster1/src/redis-sentinel /data01/public/redis/redis_cluster1/sentinel.conf & Master模塊 nohup /data01/public/redis/redis_cluster2/src/redis-server /data01/public/redis/redis_cluster2/redis.conf & nohup /data01/public/redis/redis_cluster2/src/redis-sentinel /data01/public/redis/redis_cluster2/sentinel.conf & nohup /data01/public/redis/redis_cluster3/src/redis-server /data01/public/redis/redis_cluster3/redis.conf & nohup /data01/public/redis/redis_cluster3/src/redis-sentinel /data01/public/redis/redis_cluster3/sentinel.conf &
config set slowlog-log-slower-than 指定執行時間超過多少微秒
(2)Flume啓動
nohup /data01/java/flume/bin/flume-ng agent -c conf/ -f /data01/java/flume/conf/xxx.properties -n agent -Dflume.root.logger=INFO,console >/dev/null 2 &
(3)ELK啓動
A.Logstash啓動
nohup bin/logstash -f config/translate.beats-es4.conf &
B.ElasticSearch啓動
nohup ./elasticsearch &
C.Kibana啓動
fuser -n tcp 5601 nohup ./kibana &