Jenkins和PostgreSQL正在消耗大量内存
我们有一个运行在DebianLinux上的数据仓库服务器,我们使用PostgreSQL、Jenkins和Python jenkins和Postgres已经用了几天的时间,CPU的内存消耗了很多。他们试图从谷歌上找到并检查所有的方法,但问题仍然存在 任何人都可以告诉我如何减少内存消耗,这将非常有帮助。 下面是自由-m的输出Jenkins和PostgreSQL正在消耗大量内存,postgresql,jenkins,Postgresql,Jenkins,我们有一个运行在DebianLinux上的数据仓库服务器,我们使用PostgreSQL、Jenkins和Python jenkins和Postgres已经用了几天的时间,CPU的内存消耗了很多。他们试图从谷歌上找到并检查所有的方法,但问题仍然存在 任何人都可以告诉我如何减少内存消耗,这将非常有帮助。 下面是自由-m的输出 total used free shared buff/cache available Mem:
total used free shared buff/cache available
Mem: 63805 9152 429 16780 54223 37166
Swap: 0 0 0
下面是postgresql.conf文件
以下是系统配置,
来自htop的结果
对于Jenkins,使用以下JAVA选项运行它
JAVA_OPTS=-Xms200m -Xmx300m -XX:PermSize=68m -XX:MaxPermSize=100m
对于postgres,从选项开始
-c shared_buffers=256MB
这些值是我在8GB内存的小型homelab上使用的值,您可能希望增加这些值以匹配硬件请不要将文本作为图像发布。它很难阅读和处理 我看不出你有什么问题 您的计算机有64 GB RAM,16 GB用于PostgreSQL共享内存(如您配置的),9 GB用于进程使用的私有内存,37 GB用于空闲内存(可用
条目)
Linux为文件系统缓存使用可用内存,这提高了PostgreSQL的性能。free
的低值仅表示缓存正在使用。纯文本文件不应显示为屏幕截图,而应显示为格式化文本。@a_horse_与_no_name我正在用“Select*on conflict(order_id)do UPDATE…”增量更新表,但表的大小为27GB,即使它只包含很少的记录,这个表上运行的是一个真空作业,这会导致CPU被完全利用。我们可以通过任何方式减小它的大小。JENKINS JAVA_OPTS=-Xms200m-Xmx300m-XX:PermSize=68m-XX:MaxPermSize=100m中的这个选项是什么?根据它的建议配置PostgreSQL是JVM的堆设置。我找不到我在找到这些时使用的文章,但这里有一篇不错的文章,肯定会在下一次发布图像时处理。但是CPU也很高,当我们检查时,发现一个特定桌子上的自动吸尘作业运行了很长时间,我们可以将自动吸尘器的工作更改为使用一定百分比的CPU还是将其关闭?这是另一个问题。你应该调整你的陈述。如果关闭自动真空,数据库将中断。永远不要那样做。您应该减少autovacuum\u vacuum\u成本\u延迟
,以便autovacuum消耗更多的CPU(并且更快地完成,这是目标)。