之前看到 ruby-china 替换了 puma,看到性能评测确实有很高的提升,于是把 gitlab 也做了替换,希望对小内存的朋友有帮助 :)
http://icyleaf.com/2014/01/moving-unicorn-to-puma-on-gitlab/
UNICORN - 1076 Mb 这句话怎么理解,感觉不科学阿,我 512M 内存照样跑了,只是只有一个 worker.. ubicorn 本身只有 300M 左右吧,1G 内存至少可以起 3 个 rails app 了。。
#2 楼 @small_fish__ #5 楼 @kenshin54 乃们可以压力测试一下………我上次 ab 测试并发 1000,3 个 worker 内存飙了 3G 然后宕机了…
#7 楼 @cassiuschen puma 用的时间也不算太长,官方说 puma 配合 jruby 是比较不错的,MRI 的 GIL 机制限制。我觉得 puma 的优势在于前期的内存占用率以及相应速度非常快。小型的应用及服务器资源可以考虑。
实物图 这是我的 gitlab 跑了 31 天的结果 用户大约 50 人 用的是 puma 2 进程 8-32 线程
顺路提供一个 puma 的启动脚本 可以替换原来的 init.d https://gitcafe.com/zj0713001/gitlabhq-spic/blob/master/lib/support/init.d/gitlab_puma
Gitlab 有些地方不是线程安全的,最好不要盲目换成 Puma,可能会出现一些问题。
PS:Gitlab 官方曾经把 Unicorn 换成 Puma 过,后来又恢复回去了。
[owhat@owhat-test current]$ bundle exec puma -e production -b unix:///mnt/webserver/www/owhat-web/shared/tmp/sockets/puma.sock /mnt/webserver/www/owhat-web/releases/4/vendor/bundle/ruby/2.2.0/gems/puma-2.15.3/lib/puma/cli.rb:195:in `chdir': No such file or directory @ dir_chdir - /mnt/webserver/www/owhat-web/owhat/current (Errno::ENOENT) 遇到点问题,请教一下是什么 原因造成的