Kubernetes Pod上无法预测的tar性能

时间:2019-07-09 08:14:09

标签: performance tar

我们有一个Java Spring Web应用程序在kubernetes容器中运行。最终用户操作导致Web应用程序Runtime.exec一个GoLang脚本,该脚本除其他家务管理外,还可以上载文件。在我的特定情况下,文件大小约为700 mb。

我们遇到的问题是,tar此文件所需的时间非常难以预测。这可能需要20秒到10分钟之间的任何时间。

为了缩小问题的范围,我们旋转了一个kubernetes pod,只在其中运行了tar命令。

根据分配给Pod的内存量,时间差异很大。内存为4 Gig时,只需要40秒,而内存为1.5 Gig时,则可能要花几分钟。

我最多为Pod分配了1.5个内核,而功耗从未超过1个内核。

分配给Pod的512 Mb,tar命令耗时接近11秒

root@pod-69fc4988c-km99p:/tmp/test# date;time tar -cvf test.tar 
somefile.tar.gz; date
Mon Jul  8 07:11:51 UTC 2019
somefile.tar.gz

real    0m11.313s
user    0m0.009s
sys     0m11.155s
Mon Jul  8 07:12:02 UTC 2019

docker stats at 512 mb

分配给Pod的256 mb,tar命令需要将近3分钟

root@app-hosting-69fc4988c-km99p:/tmp/test# date;time tar -cvf test.tar somefile.tar.gz; date
Mon Jul  8 07:17:36 UTC 2019
somefile.tar.gz

real    2m52.003s
user    0m0.040s
sys     2m51.856s
Mon Jul  8 07:20:28 UTC 2019

Top output inside the pod while tar was running at 256 mb pod memory

docker stats at 256 mb pod memory

考虑到我们从未像上面或docker stats所述使用所有可用内存,我不明白为什么pod内存应该成为tar占用时间的一个因素。

这里还有哪些其他pod资源可能会受到限制?

0 个答案:

没有答案