首頁  >  文章  >  php框架  >  workerman可以多重處理嗎

workerman可以多重處理嗎

(*-*)浩
(*-*)浩原創
2019-12-12 10:10:415297瀏覽

workerman可以多重處理嗎

為了充分發揮伺服器多CPU的效能,WorkerMan預設支援多進程多任務。

WorkerMan開啟一個主進程和多個子進程對外提供服務, 主進程負責監控子進程,子進程獨自監聽網路連接並接收發送及處理數據,由於進程模型簡單,使得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可以多重處理嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn