Elasticsearch线程的行为彼此不同

时间:2014-09-25 06:59:52

标签: linux multithreading elasticsearch jvm threadpool

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使用率。

1 个答案:

答案 0 :(得分:1)

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