我们刚刚开始在生产中使用beanstalkd,并且对它的性能印象深刻。
我注意到它在内存管理方面做了一些特别的事情。例如,我在PHP中创建了100000个作业,每个作业中都使用1111.013122,1212.121311作为数据。beanstalkd进程的内存使用量从约300KB上升到了18MB。几分钟后,内存将下降到大约1.5MB,仍然有相同数量的作业。
Beanstalkd也没有在持久模式下运行。
我在Mac上,尽管我们的服务器运行Ubuntu12.04。我在Mac上观察到这个--还没有在我们的服务器上试过。
这是因为Mac上的内存压缩,还是来自Beanstalkd的内存压缩,还是Beanstalkd正在将内存写入文件?这将帮助我们规划队列服务器的内存需求。
发布于 2014-11-29 07:10:25
beanstalkd是内存中的队列,它只使用外部文件进行错误恢复(它可以将作业检查点到binlog,以便在崩溃时恢复)。因此,如果这些作业没有被删除,它们仍然存在于记忆中。
你是如何测量内存使用的?beanstalkd进程虚拟大小也会缩小吗?内容是否已被分页到磁盘,从而不再以驻留身份出现?(还是在“使用物理内存”下?)
https://stackoverflow.com/questions/23340518
复制相似问题