Ruby
為什麼 Ruby 在啟動時使用 100% CPU?
不久前,我在 EC2 實例上安裝了 GitLab,從頭開始編譯 Ruby:
$ ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] $ which ruby /usr/local/bin/ruby
真正奇怪的是,每當我使用這個 Ruby 解釋器開始任何事情時,例如 GitLab 備份作業、重新啟動 GitLab 工作程序等。我的 CPU 使用率在很長一段時間內飆升至接近 100% 的使用率,甚至在我看到任何輸出之前紅寶石。看來光是載入 GitLab 所需的庫就很費勁了。
我如何調試它並找出世界上需要這麼長時間的東西?我不認為它在交換,因為 ruby 程序的記憶體使用量不是那麼高:
PID USER PR NI VIRT RES SHR S %CPU $MEM TIME+ COMMAND 31888 git 20 0 342m 111m 7144 R 98.9 19.0 3:57.57 ruby
為什麼它會在啟動時殺死我的處理器?
我最終重新編譯了 Ruby。通常,它現在響應速度更快,但@wingedsubmariner 所說的是準確的:
亞馬遜嚴格限制 CPU 時間
$$ micro $$實例可以使用。