0

我有一個在Elastic Beanstalk Worker Tier上運行的網絡爬蟲,我一直都在使用它。當隊列爲空時,它只是再次加載所有新的url,並繼續前進。它從不空虛。工人級別是否始終處於CPU 100%負載狀態?

無論我設置了多少個線程或進程,我的CPU負載都是100%使用微型實例,我對此有點困惑,我很想聽聽一些輸入。

當SQS被加載時,CPU是100%的「正常」嗎?我猜,只要一條消息完成,實例就會繼續從SQS讀取消息,這意味着即使我將實例升級爲小型或大型實例,它仍然會處於100%的CPU負載,唯一的不同之處在於它可以在相同的時間內完成更多的消息。正確?

第二個問題是如果有100%的CPU負載有什麼大問題?在日誌中,有時會出現Timeout錯誤,如Script timed out before returning headers: application.py。我想這可能與負載過高有關(?),如果是的話,我可以阻止它,或以某種方式降低CPU負載?

回答

-1

當你跑頂時,什麼是ST值?

低於強佔值的例子是0.0%

top - 13:01:16 up 161 days, 22:49, 1 user, load average: 0.00, 0.00, 0.00 
Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie 
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.8%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st 
Mem: 1695600k total, 1585988k used, 109612k free, 345484k buffers 
Swap:  0k total,  0k used,  0k free, 527696k cached 

我相信這是因爲你使用,你不支付訪問所有底層的CPU週期的微實例。當您配置微型實例時,亞馬遜不會讓您訪問100%的現代快速CPU;這對他們來說只是一個問題,確保你沒有比你付出的CPU週期多。

在中型實例上嘗試您的應用程序,看看您是否得到相同的結果。

1

對我來說,解決方案是從t1微型實例移動到t2微型實例。

相關問題