2011-08-09 3 views
6

Używamy Unicorn_Rails + nginx. Działa dobrze w trybie programowania i trybie produkcyjnym w moim systemie (4 GB pamięci RAM, Intel (R) Core ™ 2 Duo CPU P8600 @ 2,40 GHz) Mogę uruchomić 10 pracowników w systemie lokalnym, ale nie można uruchomić więcej niż 2 w każdym przypadku produkcji czasami działa, ale trzeba czekać na 15- 20 mts Zajmuje 99,6% procesora przez cały czas podczas uruchamiania unicorn_railsSzyny jednorożca - bierze 100% CPU podczas uruchamiania w trybie produkcyjnym

Intel (R) Xeon (R) CPU E5507 @ 2.27GHz ale wisi w Amazon (m1.small instancja) 1,73 GB RAM

znajdę nikt nie mówi o powolnym starcie użyciem unicorn_rails nigdzie ...

+0

wymyśliłeś to? mam ten sam problem. – Morten

Odpowiedz

1

Uruchamianie Railsów jest zależne od procesora, to (prawie) zawsze będzie używać 100% CPU przez cały czas. Wygląda na to, że obciążenie, które próbujesz umieścić, jest zbyt duże; potrzebujesz tylko jednego pracownika na rdzeń procesora, a m1.small ma tylko jeden.

Przy próbie uruchomienia 10 pracowników współużytkują zarówno procesor, jak i operacje wejścia/wyjścia, a wiele żądań we/wy zawsze spowalnia działanie podsystemu. Możesz dodać klauzulę preload_app true do swojego config/unicorn.rb; powinno to obniżyć czas uruchamiania, ale tak naprawdę nie potrzebujesz 10 pracowników w takiej instancji.

+0

dziękuję za natychmiastową odpowiedź. Po prostu to uwielbiam ... na pewno spróbuję z preload_app true. btb Mam tylko 1 robotnik skonfigurowany w pliku unicorn.rb conf. –

+2

to dziwne. Instancje Amazon nie są bardzo potężne, ale rozpoczęcie Railsów zdecydowanie nie powinno zająć 15 minut - do diabła, 1,5 minuty wystarcza na moim starym Pentium III! (przy okazji, preload_app nic nie zmieni, jeśli masz tylko jednego pracownika). Spróbuj uruchomić go przez 'strace -f' (bez demona) i sprawdź, czy niektóre sesje trwają znacznie dłużej niż oczekiwano. – whitequark

+0

nie ma mowy. Jest wciąż taki sam. –