【问题标题】:Segmentation fault when use memcached in Django+Apache在 Django+Apache 中使用 memcached 时出现分段错误
【发布时间】:2016-10-08 15:41:07
【问题描述】:

我正在使用 MemcachedCache 后端为 Django 项目配置缓存。

我已经在本地和预生产服务器中对其进行了测试,它就像一个魅力。但是当我在生产服务器上部署它时,我在重启 apache 后收到多个关于分段错误的错误,如下所示:

[mpm_prefork:notice] [pid 40094] AH00169:捕获 SIGTERM,正在关闭 [mpm_prefork:notice] [pid 27734] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.5 OpenSSL/1.0.1f mod_wsgi/3.4 Python/2.7.6 已配置 $ [核心:通知] [pid 27734] AH00094:命令行:'/usr/sbin/apache2' [core:notice] [pid 27734] AH00052: child pid 28214 exit signal Segmentation fault (11) [core:notice] [pid 27734] AH00052: child pid 28225 exit signal Segmentation fault (11) [crit] 内存分配失败,中止进程。 [mpm_prefork:error] [pid 27734] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process [核心:通知] [pid 27734] AH00052:子 pid 28239 退出信号中止 (6) [core:notice] [pid 27734] AH00052: child pid 28279 exit signal Segmentation fault (11) [core:notice] [pid 27734] AH00051: child pid 28280 exit signal Segmentation fault (11), /etc/apache2 中可能的 coredump [core:notice] [pid 27734] AH00052: child pid 28313 exit signal Segmentation fault (11) [core:notice] [pid 27734] AH00052: child pid 28335 exit signal Segmentation fault (11) [core:notice] [pid 27734] AH00052: child pid 28355 exit signal Segmentation fault (11) [mpm_prefork:error] [pid 27734] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process [core:notice] [pid 27734] AH00052: child pid 28278 exit signal Segmentation fault (11) [core:notice] [pid 27734] AH00052: child pid 28336 exit signal Segmentation fault (11) [mpm_prefork:error] [pid 27734] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process [crit] 内存分配失败,中止进程。 ...

我不明白,因为预生产服务器的内存比生产服务器少(大约一半)。

您能帮我找出这种行为背后的问题或错误吗?

【问题讨论】:

    标签: django apache memcached mod-wsgi python-memcached


    【解决方案1】:

    使用

    free -m
    

    检查您的可用内存。

    如果您的可用内存不足,此链接https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04 教程可能有助于创建交换文件。

    如果您在创建交换文件后仍然遇到这些问题,您可能需要升级到更大的 droplet(但我怀疑这是您的情况)

    【讨论】:

    • 感谢您的回答!我已经检查了空闲内存,大约是 500。在预生产和生产服务器中或多或少相同,但 preprod 不会引发错误......即使这样我也会尝试创建一个交换文件。
    • 好吧,希望它会起作用..请投票给答案,这样人们也可以关注它:) thx
    • 我尝试设置4G的swap,但是当我重新启动apache并运行'free -m'时,整个swap内存都在使用中,我仍然得到错误,但这次是关于wsgi脚本不能作为 Python 模块加载。我不明白为什么相同的代码在 preprod 中可以正常工作并且在 prod 中有这种行为... -.-
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2021-04-12
    • 2021-06-13
    • 2013-04-03
    • 2016-09-15
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多