2016-11-02 26 views
5

我已閱讀所有關於Heroku的關於Puma和dyno類型的文章,我無法得到直接的答案。如何確定在Heroku Performance dyno上運行的Puma工人和線程的正確數量?

我看到一些人提到Puma工人的數量應該由核心數決定。 Heroku無法找到任何地方顯示性能-M或性能-L dyno有多少個內核。

在這篇文章中,Heroku的暗示的方法: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

我認爲他們是在暗示該線程設置爲1,並增加彪馬工人的數量,直到你開始看到R14(內存)錯誤,然後退後。然後增加線程數,直到CPU最大化,儘管我不認爲Heroku報告CPU利用率。

任何人都可以提供指導嗎?

(我也想確定我是否應該使用一個性能-L或多個性能-M DYNOS,但我認爲,這將是明確的,一旦我弄清楚如何設置工人&線程)

+0

你最終弄清楚了嗎?我現在有完全相同的問題。運行'heroku run'cat/proc/cpuinfo「--app yourappname'(cpu info),'heroku run」cat/proc/meminfo「--app yourappname'(內存信息),'heroku run」top「 - app yourappname'(舊的linux'top'),但不能進入實際的'working' dynos。 –

回答

8

路線圖我現在想通了,是這樣的:

  1. heroku run "cat /proc/cpuinfo" --size performance-m --app yourapp
  2. heroku run "cat /proc/cpuinfo" --size performance-l --app yourapp
  3. 寫下過程的信息,你有
  4. 搜索英特爾處理器的型號,家族,型號,步數,以及查找該處理器具有或模擬的內核數量。
  5. 看看這個https://devcenter.heroku.com/articles/dynos#process-thread-limits
  6. 做一些小實驗與standard-2X/standard-1X確定PUMA_WORKER值。
  7. 做你的數學是這樣的:

(Max Threads of your desired dyno type could support)/(Max Threads of baseline dyno could support) x (Your experiment `PUMA_WORKER` value on baseline dyno) - (Number of CPU core)

例如,如果PUMA_WORKER是3我standard-2X測功機爲基線,然後在performance-mPUMA_WORKER號我將開始測試它會:

512分之16384* 3 - 4 = 92

你也應該考慮多少內存您的應用程序消耗和挑最低的一個。

編輯:以前我的答案是在ps:exec之前寫的。您可以閱讀the official document並瞭解如何使用ssh運行測試儀。它應該比以前更容易。

相關問題