【问题标题】:How does Beanstalkd manage memory?Beanstalkd 如何管理内存?
【发布时间】:2014-04-28 11:57:54
【问题描述】:

我们刚刚开始在生产中使用beanstalkd,它的性能给我们留下了深刻的印象。

我注意到它在内存管理方面做了一些特殊的事情。例如,我在 PHP 中创建了 100k 个作业,每个作业中的数据为 1111.013122,1212.121311beanstalkd 进程的内存使用量从大约300KB 上升到18MB。几分钟后,内存下降到大约1.5MB,仍然存在相同数量的作业。

Beanstalkd 也以持久模式运行。

虽然我们的服务器运行的是 Ubuntu 12.04,但我使用的是 Mac。我在 Mac 上观察到了这一点 - 还没有在我们的服务器上尝试过。

这是因为 Mac 或 Beanstalkd 上的内存压缩,还是 Beanstalkd 写入文件?这将有助于我们规划队列服务器的内存需求。

【问题讨论】:

    标签: php macos beanstalkd


    【解决方案1】:

    beanstalkd 是一个内存队列,它仅使用外部文件进行错误恢复(它可以将作业检查点到 binlog,以便在崩溃的情况下恢复)。因此,如果作业没有被删除,它们仍然存在于内存中。

    您如何衡量内存使用情况? beantalkd 进程的虚拟大小是否也会缩小?内容是否已被分页到磁盘,因此不再显示为常驻? (或在“使用的物理内存”下?)

    【讨论】:

    • 它们已被调出,我们之前没有注意到。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多