linux – Elasticsearch线程的行为彼此不同

Elasticsearch运行在我的低配置系统上,该系统具有4G内存和4核CPU.我得到ES的高CPU使用率问题.即使关闭了分析仪,也减少了螺纹尺寸等.

在分析情况的同时,我得到了Elasticsearch的堆栈跟踪,看到有数百个线程,它由config NP定义,但只有部分线程正在运行,只有一个线程有很多CPU时间.

这是堆栈跟踪:

top - 09:51:44 up 1 day,1:46,2 users,load average: 4.94,5.35,5.29
Tasks: 684 total,2 running,682 sleeping,0 stopped,0 zombie
Cpu(s):  7.2%us,1.1%sy,0.8%ni,83.7%id,6.7%wa,0.1%hi,0.4%si,0.0%st
Mem:   4043340k total,3466748k used,576592k free,30272k buffers
Swap:  4192960k total,410704k used,3782256k free,465868k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                           
25134 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25136 root      20   0 1086m 978m  14m S  0.0 24.8   0:03.34 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25137 root      20   0 1086m 978m  14m S  0.0 24.8   6:43.82 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25138 root      20   0 1086m 978m  14m S  0.0 24.8   6:43.17 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25139 root      20   0 1086m 978m  14m S  0.0 24.8   6:43.05 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25140 root      20   0 1086m 978m  14m S  0.0 24.8   6:40.66 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25141 root      20   0 1086m 978m  14m S 15.3 24.8 204:53.20 /usr/bin/java -Xms808m -Xmx808m -Xss256k
25143 root      20   0 1086m 978m  14m S  0.0 24.8  10:47.46 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25144 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.37 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25145 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.04 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25146 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.20 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25147 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25148 root      20   0 1086m 978m  14m S  0.0 24.8   0:19.46 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25149 root      20   0 1086m 978m  14m S  0.0 24.8   0:24.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25150 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25151 root      20   0 1086m 978m  14m S  0.0 24.8   0:16.63 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25156 root      20   0 1086m 978m  14m S  0.0 24.8   0:03.07 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25159 root      20   0 1086m 978m  14m S  0.3 24.8   3:46.78 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25201 root      20   0 1086m 978m  14m S  0.0 24.8   0:01.07 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25202 root      20   0 1086m 978m  14m S  0.0 24.8   0:01.16 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25205 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25206 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25207 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25208 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.52 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25209 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.56 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25210 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25211 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25212 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.53 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25213 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25214 root      20   0 1086m 978m  14m S  0.0 24.8   0:02.74 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25215 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25216 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25217 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25218 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25219 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25220 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.54 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25221 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.52 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25222 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.55 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25223 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25233 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25241 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25245 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25249 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25252 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25259 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.00 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25264 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.24 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25266 root      20   0 1086m 978m  14m S  0.7 24.8   0:40.80 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25269 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.44 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25276 root      20   0 1086m 978m  14m S  0.0 24.8   0:37.28 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25278 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.80 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25280 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.04 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25318 root      20   0 1086m 978m  14m S  0.0 24.8   0:15.87 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25329 root      20   0 1086m 978m  14m S  0.0 24.8   0:09.73 /usr/bin/java -Xms808m -Xmx808m -Xss256k 
25333 root      20   0 1086m 978m  14m S  0.0 24.8   0:00.01 /usr/bin/java -Xms808m -Xmx808m -Xss256k

正如在代码块中看起来那样,ID为25141的线程比其他线程更多,其中一些线程至少没有使用过一次.

为什么它会发生,我该怎么做才能防止高CPU使用率.

解决方法

有些线程比其他线程做更多的工作.进行网络通信的人总是生成负载,执行查询的线程可能会产生高负载等等.据我所知,lucene合并非常耗费CPU.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...