部署 puma 之痛

iamroody · 2013年06月06日 · 最后由 imlcl 回复于 2013年06月08日 · 5429 次阅读

最近些日子,从 unicorn 切换到 puma,原想能获得内存和性能上的提升,但是在这切换过程中,却遭遇了 puma web server 的种种不稳定性,比如 重启 puma 会随机失败,puma 的多个 workers 会占用 100% 的 cpu 等等。 puma 2.0.1 和 puma 2.0.0 还是有太多的 bug,还是先切换回 unicorn,待其稳定之后再用吧。

puma 这东西现在看上去很美,用起来很伤,我在 padrino 上用了下 puma,重启问题比较多,放眼 issues 上,大片 restart 的问题

据说 puma 是针对 jruby 和 rubinius 的

重启失败多半是因为 puma.state 这个文件,一直觉得这个地方是设计缺陷

#3 楼 @huacnlee master 上好像已经修复了,这几天没搞,虽然返回失败,但好像照样重启了,不需要 stream 的还是 unicorn 吧,稳定,省心

#4 楼 @doabit 还有 USR2 重启的问题,也同样提交 issue,他们也都修了。 昨天重启的时候,在多个 worker 的配置下,两个 worker 的 cpu 都飚到了 100%,还持续了好一会时间。 现在回忆 unicorn,主要是内存占的有点多,但稳定的很,基本上一个 worker 200 多 M。

#5 楼 @iamroody unicorn 省心些,puma 在我这好像跑几天内存也狂长,不知道是不是我配置问题还是怎么

#6 楼 @doabit 前几天我也报了这样的问题,后来经@huacnlee 提示,有可能是 rmagic 导致的内存泄露,现在已经更换到 mini_magic 了。

#7 楼 @iamroody 没有用 rmagic,我只跑了个 blog,你 puma 一个进程大约占多少内存,

#8 楼 @doabit 之前 puma 刚起来的时候差不多是 100mb,一个 worker,但是过了不到一个星期就涨到了 6、700mb.

#9 楼 @iamroody 哦,我的还好,一个 worker,一周从开始 50 多跑到 80,前面看错的了,把 unicorn 的那个 200 看成 puma 的了,

@iamroody or others 怎么看一个服务器进程用了多少内存?

top 只能看到百分比%MEM, 且看不到服务器名字,只能在 COMMAND 里看到一个个.ruby.bin

#11 楼 @zealinux 在 linux 下 ps aux 或者 cat /proc/进程id/status

#11 楼 @zealinux htop is much better than top

你可以换成 rainbows 看看。rainbows 也是多线程,但是 code base 和 unicorn 是一样的,我用下来很稳定。

看来 puma 只是看起来很美呀,唉。。。

我也用,暂时还没发现问题。。。

如果这么说,为什么 GitLab 会选择 puma 呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号