带有256GB内存/ 48核的Linux-机器开始th动/窒息,仅剩大量内存


12

机器:Dell r815,CentOS 5.4、256GB RAM,4 x 12核。

我们有一个具有275GB文件的应用程序。它一次对20GB的数据进行就地排序,即它交换位并替换为同一文件。这一切都很好。

最后一步是读取整个文件,并对不同的20GB块进行合并排序,然后将它们输出到一个新文件中。

这个过程可以运行一段时间,最终将大约50GB刷新到磁盘。此后的某个时间,WHOLE机器开始崩溃。

简单的命令一样ps -efls -al,挂了很长一段时间,并显示为以100%的CPU(这只是一个核心)。

查看上的内存统计信息top,我看到它正在使用大约120GB的RAM(因此128GB可用),并且在“缓存”部分下有120GB。

以前有没有人见过这种行为?在具有64GB内存的计算机上,相同的过程运行良好-因此,我认为这与计算机中具有的RAM装载有关。

(正如我们所说的,我正在除64GB之外的所有计算机上运行测试,以排除硬件问题)。

我也许会缺少一些vm参数/etc/sysctrl.conf吗?

谢谢!


磁盘在做什么。.您要进入交换地狱吗????
Arenstar

64位内核/应用程序/等?您提到100%cpu,什么时候发生平均负载,它是多线程应用程序(如果不使用,它将不使用所有处理器),vmstat 4告诉您(特别是io / cpu)
coredump 2010年

像“ ps”这样的100%cpu占4800%(因为48个内核)-因此,最有可能被io或其他东西阻塞。盒子上的平均负载仅为5。处于固态的磁盘未见大量写入...似乎更多的是内核问题,而不是资源
aspitzer 2010年

机器根本没有交换。
10年

1
是的..现在以64GB运行它。应该在一小时内知道它是否与机器中的内存总量有关
aspitzer 2010年

Answers:


12

您的问题使我想起了我最近读到的一些东西:

http://jcole.us/blog/archives/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/

这解决了NUMA架构(例如,您可能在48核AMD系统中发现的)如何影响内存分配和交换。我不知道这是否是您遇到的问题,但听起来很相似,值得一读。

即使不是答案,它也可以吸引人的阅读。


1
对于这个问题的问题,这似乎是值得的。这是一个很棒的阅读。
coredump

1
这是一本好书,有4个插槽,每个节点256Gb RAM = 64Gb,这似乎是您遇到的麻烦,它可以完全复制文档中的情况。
马克·亨德森

12

因此,这似乎是64位Centos 5.4和64位Fedora 14中的一个内核错误。在我安装Centos 5.5之后,问题就消失了。

抱歉,我没有为每个人提供更好的答案。


1
嘿,如果这是固定的,那是固定的。给自己打勾,其他人可以从您的困难中学习:-)
mfinni 2010年

0

您可以尝试在/etc/sysctl.conf中添加一行以指定仅在绝对必要时才使用交换。

swappiness = 0

您可能已经知道此文件定义了全局设置,因此有必要考虑此更改将对环境中运行的其他应用程序产生的影响。


已经设置好了...但是正如我提到的,它有128GB的可用空间-因此它不会遇到任何交换问题。
aspitzer 2010年

0

您的临时空间在哪里。通常是在拍子上。Tempfs从交换空间备份的内存中提取空间,因此,如果tempfs的内容过多,则会触发交换I / O。

给定您要合并的数据量,当您进行最终合并时,我希望可以交换。

将交换存储分布在多个磁盘上可能会有所帮助。


0

尽管您可能没有进行交换,但是您可能仍受I / O约束。ls信息表明了这一点。

我将查看dstat -df显示磁盘统计信息的输出,或者dstat -af(是的,它将是一个十亿列的宽;如果您有48个核,并显示所有核的CPU利用率,就会发生这种情况)。

如果所有CPU都忙(合并排序不是CPU密集型任务),我会感到惊讶,但是您对I / O系统一无所知。如果磁盘很少,文件很少,则可能是在对每个文件执行搜索以保持合并排序的状态下对磁盘进行重击。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.