11.java编程实践
大约 1 分钟
场景
生产者和消费者 阻塞队列是给生产者和消费者解耦的
多生产者和多消费者场景
线程池与生产消费者模式
线上问题定位
top 查看每个进程的情况
top 1 查看每个CPU的性能数据。
top -H 看每个线程的性能信息
第一种情况,某个线程CPU利用率一直100%,则说明是这个线程有可能有死循环,那么 请记住这个PID。
第二种情况,某个线程一直在TOP 10的位置,这说明这个线程可能有性能问题。
第三种情况,CPU利用率高的几个线程在不停变化,说明并不是由某一个线程导致CPU 偏高。 如果是第一种情况,也有可能是GC造成,可以用jstat命令看一下GC情况
sudo /opt/java/bin/jstat -gcutil 31177 1000 5
sudo -u admin /opt/taobao/java/bin/jstack 31177 > /home/tengfei.fangtf/dump17
性能测试
当前有多少台机器在压测服务器 netstat -nat | grep 12200 –c
数据库连接 netstat -nat | grep 3306 –c
ps命令查看下线程数 ps -eLf | grep java -c
慢的SQL grep Y /home/admin/logs/xxx/monitor/dal-rw-monitor.log |awk -F',' '{print $7$5}' | sort -nr|head -20
查看网络流量。 cat /proc/net/dev
查看系统平均负载。 cat /proc/loadavg
查看系统内存情况。 cat /proc/meminfo
查看CPU的利用率。 cat /proc/stat
git地址
https://github.com/yinlingchaoliu/juc