第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 WSGI/apache 應(yīng)用程序中強(qiáng)制執(zhí)行每個 IP 的并發(fā)線程限制

在 WSGI/apache 應(yīng)用程序中強(qiáng)制執(zhí)行每個 IP 的并發(fā)線程限制

富國滬深 2021-06-10 18:24:34
我們正在運行一個 Flask 應(yīng)用程序來公開存儲在數(shù)據(jù)庫中的數(shù)據(jù)。它返回很多503錯誤。我的理解是,當(dāng)達(dá)到最大并發(fā)線程數(shù)時,這些是由 apache 生成的。根本原因很可能是應(yīng)用程序性能不佳,但在這個階段,我們無法承受更多的開發(fā)時間,所以我正在尋找一種廉價的部署配置技巧來緩解這個問題。數(shù)據(jù)提供者正在以高速率發(fā)送數(shù)據(jù)。我相信他們的程序得到了很多,503只是嘗試/抓住那些重試直到成功。數(shù)據(jù)消費者以低得多的速度使用該應(yīng)用程序,我希望他們不要被這些問題所困擾。我正在考慮限制來自每個提供商的 IP 的并發(fā)訪問數(shù)量。他們可能會獲得較低的吞吐量,但他們會像以前一樣忍受它,這將使休閑消費者的生活更輕松。我確定了似乎為此而定制的mod_limitipconn。mod_limitipconn [...] 允許管理員限制來自單個 IP 地址的同時請求的數(shù)量。我想確定我了解它是如何工作的以及如何設(shè)置限制的。由于 WSGI 設(shè)置,我一直認(rèn)為最多有 5 個同時連接:threads=5. 但是我在 mod_wsgi 文檔中閱讀了進(jìn)程和線程,我很困惑??紤]到下面的配置,這些假設(shè)是否正確?一次僅運行一個應(yīng)用程序?qū)嵗?。最多可以產(chǎn)生 5 個并發(fā)線程。當(dāng)處理 5 個請求時,如果第 6 個請求到達(dá),客戶端會得到一個503.將 apache 級別對 IP xxxx 的同時請求數(shù)量限制為 3 將確保該 IP 只能使用這 5 個線程中的 3 個,將 2 個留給其他 IP。增加 WSGI 配置中的線程數(shù)可以通過提供更細(xì)粒度的速率限制來幫助在客戶端之間共享連接池(您可以將 4 個提供者中的每一個限制為 3 個,并保持 5 個,總共 17 個),但不會改善整體性能,即使服務(wù)器有空閑內(nèi)核,因為Python GIL 阻止多個線程同時運行。將線程數(shù)提高到 100 之類的高數(shù)可能會使請求更長,但會限制503響應(yīng)。如果客戶端將自己的并發(fā)請求限制設(shè)置得不太高,甚至可能就足夠了,如果沒有,我可以使用類似mod_limitipconn.過多地增加線程數(shù)會使請求變得很長,以至于客戶端會超時,而不是503這樣并不是更好。
查看完整描述

2 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

我希望他們不要被數(shù)據(jù)消費者的數(shù)據(jù)提供者的請求所困擾(我不熟悉 apache,所以我沒有向您展示生產(chǎn)就緒的配置,而是一種整體方法):


<VirtualHost *>

    ServerName example.com


    WSGIDaemonProcess consumers user=user1 group=group1 threads=5

    WSGIDaemonProcess providers user=user1 group=group1 threads=5

    WSGIScriptAliasMatch ^/consumers_ulrs/.* /path_to_your_app/consumers.wsgi process-group=consumers

    WSGIScriptAliasMatch ^/providers_ulrs/.* /path_to_your_app/providers.wsgi process-group=providers


    ...


</VirtualHost>

通過限制每個 IP 的請求數(shù)量,您可能會損害用戶體驗,但仍然無法解決您的問題。例如,請注意由于 NAT 和 ISP 的工作方式,許多獨立用戶可能具有相同的 IP。


PS 這很奇怪,ThreadsPerChild=25但是WSGIDaemonProcess my_app threads=5. 您確定使用該配置 Apache 創(chuàng)建的所有線程都將被 WSGI 服務(wù)器使用嗎?


查看完整回答
反對 回復(fù) 2021-06-16
  • 2 回答
  • 0 關(guān)注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號