
我看对应的进程 cpu 已经最大 200%了
request limit 都设置为 2

load average

kubectl top命令cpu利用率正常,但是load average还是很高 
1 hwdef 2022 年 3 月 26 日 kubectl top 看一下,容器里的 top 看资源使用量不一定准确 |
4 hwdef 2022 年 3 月 26 日 不是你这个 pod 的问题吧,你这 pod 确实也没有超设定值,load average 高的原因有很多,磁盘什么的也会影响,不只是 cpu 和内存,看你这是阿里云的虚拟机,虚拟机底层的主机如果负载高也会造成虚拟机的平均负载高, 总之就是原因很多,不一定是 cpu 的问题 |
6 dunhanson OP @hwdef 因为这个项目很老,代码比较冗余,我现在代码在精简,有点效果,之前 top 启动的时候负载超过 200 300 ,现在<60 。但还是很高,cpu 总共也就 4 线程 |
7 hwdef 2022 年 3 月 26 日 emmmm 容器优化 jvm 我也不熟,,我是写 go 的,,,感觉 java 上云还是容易水土不服,, |
9 disk 2022 年 3 月 26 日 via iPhone 你这个 java 程序是多线程的吗? k8s 只能限制容器的 cpu 使用时间,如果你有多个线程在等 cpu ,负载一样会很高。 |
10 dunhanson OP @disk 用的基于 tomcat7 的镜像,然后启动脚本是这样子,主要是为了方便看日志 chmod 777 /usr/local/tomcat/bin/catalina.sh sh /usr/local/tomcat/bin/startup.sh tee /opt/health.sh <<-'EOF' while true do sleep 1s if test $( ps -aux | grep java | grep tomcat | wc -l ) -eq 0 then ps -aux | grep catalina.out | grep -v grep | awk '{print$2}' | xargs kill -9 fi done EOF sh /opt/health.sh & tail -f /usr/local/tomcat/logs/catalina_${HOSTNAME}.out |
12 ClericPy 2022 年 3 月 26 日 同 9 楼 load average 貌似和你任务对系统 CPU 的需求, 不是实际使用情况, 堵的越惨这东西越高. 而容器外面限制资源使用, 该堵的是不是还在那等着 |
14 vhwwls 2022 年 3 月 26 日 没看出来有啥问题,Pod 占用是正常的,节点上的 Load average 高是别的原因,vmstat 看看 |
15 rrfeng 2022 年 3 月 26 日 你需要去了解一下 cpu usage(utilization) 和 load 的区别。 |
16 ddmasato 2022 年 3 月 26 日 via iPhone 是磁盘 io 堵住了吧 |
17 24bit 2022 年 3 月 26 日 会不会是 java 没识别到分配的 cpu 数,线程池按照虚拟机总 cpu 数创建了,导致线程太多? |
20 lhx2008 2022 年 3 月 26 日 看 top -H 有多少 Running 的线程,如果很多的话,你调小 limit 反而会把 load 搞高 |