您好,登錄后才能下訂單哦!
這篇文章主要介紹workerman能不能多進程執行,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
為了充分發揮服務器多CPU的性能,WorkerMan默認支持多進程多任務。
WorkerMan開啟一個主進程和多個子進程對外提供服務, 主進程負責監控子進程,子進程獨自監聽網絡連接并接收發送及處理數據,由于進程模型簡單,使得WorkerMan更加穩定,更加高效。
創建一個主進程(守護進程),一旦啟動長時間運行在后臺,即使關掉瀏覽器頁面.
主線程定時查詢數據庫(MySQL),一旦發現有符合條件的URL(可能多條),即創建對應的數量的子進程.
子進程也需要長時間存在,定時輪詢URL對應的服務器取回數據.
子進程一旦取回所需要的數據,將結果保存到數據庫,自我結束(或被主進程關閉).
進程數設置原則
1、每個進程占用內存之和需要小于總內存(一般來說每個業務進程占用內存大概40M左右)
2、如果是IO密集型,也就是業務中涉及到一些阻塞式IO,比如一般的訪問Mysql、Redis等存儲都是阻塞式訪問的,進程數可以開大一些,如配置成CPU核數的3倍。
如果業務中涉及的阻塞等待很多,可以再適當加大進程數,例如CPU核數的5倍甚至更高。注意非阻塞式IO屬于CPU密集型,而不屬于IO密集型。
3、如果是CPU密集型,也就是業務中沒有阻塞式IO開銷,例如使用異步IO讀取網絡資源,進程不會被業務代碼阻塞的情況下,可以把進程數設置成和CPU核數一樣
以上是“workerman能不能多進程執行”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。