我在尝试使用kubernetes Jmeter 板时遇到了问题。搜索我的pod名称很少找到任何东西,即使pod存在。查看浏览器中的HTTP请求, Jmeter 板正在发送大量HTTP请求,许多请求都失败了。这个问题发生在多个集群中,是kubernetes出了什么问题吗?
wgxvkvu91#
kubernetes dashboard的已知问题是制作不好的软件,请参阅GitHub上的许多罚单:
Jmeter 板中的搜索是搜索集群中的所有资源。对于具有数千个Pod和对象的真实的集群,可能需要一些时间。默认情况下, Jmeter 板每5秒自动刷新一次所有资源。这就是问题所在。 Jmeter 板每5秒就重新发送一批繁重的请求,中止任何最后一个完成得不够快的请求。大多数请求永远无法完成。(请注意,当客户端突然断开连接时,Web服务器通常会继续处理请求)。这是一个很好的例子,说明了为什么你从来不设置短超时(5秒)和自动重试。一旦有一点使用和资源压力,它肯定会在生产中导致灾难性的级联故障。在Google的SRE书籍中有一章是关于这个的,如果他们读过自己的书https://sre.google/sre-book/addressing-cascading-failures/的话一些调整来帮助:1.要自行缓解此问题,请在 Jmeter 板UI中调整您的个人设置:Settings-〉Resource auto-refresh time interval-〉0 seconds(禁用)
Settings
Resource auto-refresh time interval
0 seconds
resourceAutoRefreshTimeInterval
1条答案
按热度按时间wgxvkvu91#
kubernetes dashboard的已知问题是制作不好的软件,请参阅GitHub上的许多罚单:
Jmeter 板中的搜索是搜索集群中的所有资源。对于具有数千个Pod和对象的真实的集群,可能需要一些时间。
默认情况下, Jmeter 板每5秒自动刷新一次所有资源。
这就是问题所在。 Jmeter 板每5秒就重新发送一批繁重的请求,中止任何最后一个完成得不够快的请求。大多数请求永远无法完成。(请注意,当客户端突然断开连接时,Web服务器通常会继续处理请求)。
这是一个很好的例子,说明了为什么你从来不设置短超时(5秒)和自动重试。一旦有一点使用和资源压力,它肯定会在生产中导致灾难性的级联故障。在Google的SRE书籍中有一章是关于这个的,如果他们读过自己的书https://sre.google/sre-book/addressing-cascading-failures/的话
一些调整来帮助:
1.要自行缓解此问题,请在 Jmeter 板UI中调整您的个人设置:
Settings
-〉Resource auto-refresh time interval
-〉0 seconds
(禁用)resourceAutoRefreshTimeInterval
。1.不要在dashboard容器上设置CPU限制。dashboard正在发送批量的HTTP请求,当遇到CPU限制时,它们将争夺资源和超时。(如果你真的想设置CPU限制,请查看节流统计数据并相应地调整限制,对我来说,我看到节流高达10个CPU)。
1.提高或不设置内存限制。在上面链接的GitHub问题中,Kubernetes开发人员表示,对于小型集群,2 GB就可以了,对于大型集群,增加到8 GB或更多。(内存不足崩溃),内存高达24 GB,默认刷新间隔为5秒(OOM在禁用刷新后解决).请确保您已禁用自动刷新,并慷慨地使用内存.您可以查看容器的内存使用情况并进行相应的调整,