亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

uwsgi worker 分布不均勻

uwsgi worker 分布不均勻

天涯盡頭無女友 2022-08-16 10:47:20
我有一個Django項目,用nginx和uwsgi配置。網站中涉及的CPU處理并不多。大部分都是簡單的閱讀,但我們預計會有很多點擊。我使用apache基準測試。給出一個簡單的方法是使網站變慢(當基準測試正在進行時,即使從不同的IP地址也無法在任何瀏覽器中打開網站)。我給出了16個進程的數量和8個線程的數量。我的uwsgi.ini文件如下。ab -n 200 -c 200 <url>[uwsgi] master          = true  socket          = /tmp/uwsgi.sock chmod-socket    = 666 chdir           = <directory> wsgi-file       = <wsgi file path> processes       = 16 threads         = 8 virtualenv      = <virtualenv path> vacuum          = true enable-threads  = true daemonize= <log path> stats= /tmp/stats.sock當我檢查uwsgitop時,可以看到worker 7和8正在處理大多數請求,其余的處理的請求數量少于它們。這可能是我在運行基準測試時無法在瀏覽器中加載網站的原因嗎?如何有效地使用uwsgi進程來提供最大數量的并發請求?這是htop的結果。在基準測試期間,使用的內存或處理器不多。有人可以幫我有效地設置服務器嗎?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

據我所知,只有2個核心。您不能僅跨越兩個內核的大量進程和線程。如果您的線程必須等待其他 IO 進程,您將獲得優勢。然后他們去睡覺,其他人可以工作。

始終最多兩個(=內核數)同時使用。

你沒有提供有關你的應用的太多信息,除了它“主要是簡單的閱讀,但我們預計會有很多點擊”。這不是很多IO等待的聲音。我猜數據庫也在同一臺主機上運行(也需要一些CPU時間)

首先嘗試將線程/進程降低到 4。然后玩+/- 1并相應地進行測試。

閱讀 https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html 你會發現這樣的句子:

沒有用于設置要使用的進程或線程數的魔術規則。它在很大程度上取決于應用程序和系統。

默認情況下,Python 插件不會初始化 GIL。這意味著應用生成的線程將不會運行。如果需要線程,請記住使用啟用線程啟用它們。在多線程模式下運行 uWSGI(使用線程選項)將自動啟用線程支持。這種“奇怪”的默認行為是出于性能原因,這并不丟人。


查看完整回答
反對 回復 2022-08-16
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

如果您有足夠的錢,請根據您的主板要求更換處理器。最好選擇核心i3或更高版本。

這是因為您只有兩個核心處理器,當您運行多線程軟件時,很容易被加熱。你不能在上面做很多任務。有時它運行得如此之快,然后停止了一些大型多線程軟件。


查看完整回答
反對 回復 2022-08-16
  • 2 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號