Ruby

為什麼 Ruby 在啟動時使用 100% CPU?

  • December 8, 2013

不久前,我在 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 $$實例可以使用。

引用自:https://unix.stackexchange.com/questions/104186