【问题标题】:Debian "unable to allocate memory"Debian“无法分配内存”
【发布时间】:2014-11-11 09:18:41
【问题描述】:

我已经安装了 Debian jessie。

内核版本:

Linux srv1 3.16-3-amd64 #1 SMP Debian 3.16.5-1 (2014-10-10) x86_64 GNU/Linux

它安装了 32Gb 内存。对于我的任务来说,这似乎已经足够了。 大量使用星号进程会泄漏大量内存并产生很多麻烦。

Asterisk 本身和 bash 不时报告“无法分配内存”。

同时基于附加的顶级报表服务器有 7 Gb 未使用的内存。

如果有人能帮助找出问题所在,那就太好了: - 用尽了哪些资源 - 100% 服务器资源利用率需要调整什么。

顶部:

任务:总共 130 个,1 个正在运行,129 个正在休眠,0 个停止,0 个僵尸
%Cpu0 : 6,0 us, 1,3 sy, 0,0 ni, 21,5 id, 70,8 wa, 0,0 hi, 0,3 si, 0,0 st
%Cpu1 : 70,2 us, 0,3 sy, 0,0 ni, 24,8 id, 4,6 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu2 : 3,0 us, 0,7 sy, 0,0 ni, 84,6 id, 11,7 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu3 : 6,9 us, 0,7 sy, 0,0 ni, 78,2 id, 14,2 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu4 : 3,3 us, 0,7 sy, 0,0 ni, 84,3 id, 11,7 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu5 : 4,0 us, 0,7 sy, 0,0 ni, 90,1 id, 5,3 wa, 0,0 hi, 0,0 si, 0,0 st

KiB 内存:总共 32985292 个,已使用 25834636 个,可用 7150656 个,38312 个缓冲区
KiB 交换:总共 58592252,使用 1767420,免费 56824832。 37988 缓存内存

PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令

7615 星号 20 0 3147628 2,813g 1820 S 69,8 8,9 5:35.84 php
2389 星号 20 0 20,150g 1,207g 2176 S 28,5 3,8 247:42.19 星号
976 mysql 20 0 1411844 19392 2624 S 1,3 0,1 15:13.28 mysqld
21651 根 20 0 24876 2824 2316 R 0,7 0,0 0:02.08 顶部
...

【问题讨论】:

  • 你可以有很多空闲内存,但是当程序分配内存时,它需要是连续的。如果没有足够大的连续块,分配失败。
  • -bash-4.3# cat /proc/buddyinfo 节点 0,区域 DMA 0 1 0 0 2 1 1 0 1 1 3 节点 0,区域 DMA32 815 785 3993 4256 3637 1256 304 136 93 62 101节点0,区域正常15585 15152 55528 60323 53519 20439 4979 2021 982 721 2081

标签: linux debian asterisk


【解决方案1】:

您的服务器仅将内存用于应用程序数据。在您的顶部摘录中,缓冲区和缓存非常低。由于星号可能不是磁盘密集型,这似乎很好。但是你的交换也被使用了。这与您认为 32GB 内存似乎足够的假设相矛盾。

最好安装sysstat 软件包来监控系统的实际情况。 Top 仅显示当前内存和进程信息。 sysstat 与包含的 sar 命令每隔几分钟记录一次系统信息,以便稍后检索以进行分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2015-05-17
    • 2017-07-15
    • 2015-08-15
    • 2015-04-01
    • 2017-12-05
    • 2016-06-03
    相关资源
    最近更新 更多