Puma是一個RUBY 和 RACK 的快速、連續(xù)的網(wǎng)絡服務器,Puma是用于Ruby / Rack應用程序的簡單,快速,多線程,高度并發(fā)的HTTP 1.1服務器,它僅適用于運行Rack應用程序。
功能介紹
專為提高速度和并發(fā)性而設計
Puma使用C優(yōu)化的Ragel擴展(繼承自Mongrel)處理請求,該擴展以可移植的方式提供快速,準確的HTTP 1.1協(xié)議解析。然后,Puma使用線程池處理請求。每個請求都在單獨的線程中處理,因此真正的并發(fā)Ruby實現(xiàn)(JRuby,Rubinius)將使用所有可用的CPU內核。
Puma被設計為Rubinius的首選服務器,但與JRuby和MRI配合也很好。
在MRI上,有一個全局VM鎖(GVL),可確保一次只有一個線程可以運行Ruby代碼。但是,如果您要進行大量的阻塞IO(例如對外部API(如Tw itter)的HTTP調用),Puma仍然可以通過允許IO等待并行進行來提高MRI的吞吐量。
快速開始
$ gem install puma
$ puma
如果沒有參數(shù),puma將在名為config.ru的工作目錄中尋找一個rackup(.ru)文件。