目前服务器 CPU 负载居高不下,几个网站都运行同一个服务器上,都调用了 ES 的服务,用 top 命令看了下,ES 的 Java 占用的 cpu 最高,但是几个网站流量都很小,怎么查看是哪个网站负载消耗最高?
1 tairan2006 2021-06-21 09:00:47 +08:00 jstack 看一下线程 cpu 占比 可以停服的话,采用排除法逐个停一段时间就行( |
2 tairan2006 2021-06-21 09:02:56 +08:00 |
![]() | 3 wellsc 2021-06-21 09:12:00 +08:00 via iPhone 链路追踪? |
4 X0ray 2021-06-21 09:39:24 +08:00 把 ES 的 slow log 打开,通过语句定位我觉得也可行。 |
5 podel 2021-06-21 10:01:07 +08:00 其实 时间肯定跟 负载成正比的。 可以直接加一层 nginx 然后 nginx 接入 监控 metrics 或者 jaeger 之类的。 按照访问的 URL 统计请求时间比列。就知道哪个用得多了。 |
6 bjhc 2021-06-21 10:13:11 +08:00 接一个 es 的 ui 插件,比如 kibana 之类的,可以查看 es 性能之类的操作。主要还是看 index 吧,每个网站难道用的是相同的 index?如果每个网站用的是不同的 index,那么看下对应 index 的读取和写入速度吧. |