一、线上系统查看命令
(1)查看系统限制
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虚拟机本身限制
-Xms #Inital java heap size -Xmx #Maximum java heap size -Xss #The stack size for each thread
(3)查询当前某程序的线程或者进程数
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)查询当前整个系统已用的线程或者进程数
pstree -p | wc -l
参见:http://lisiqi.cc/技术/2015/12/24/一次线上多线程bug修复.html
(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
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
二、线上系统启动
(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 &