基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
基于多進程服務器的優點:
? 1.由操作系統進行調度,運行比較穩定強壯
? 2.能夠方便地通過操作系統進行監控和管理
? ? ?例如對每個進程的內存變化狀況,甚至某個進程處理什么web請求進行監控.同時可以通過給進程發送信號量,實現對應用的各種管理
? 3.隔離性好
? ? ?一個進程出現問題只有殺掉它重啟就可以,不影響整體服務的可用性
? ? ?很容易實現在線熱部署和無縫升級
? ? ? 不需要考慮線程安全問題
? ?4.充分利用多核cpu,實現并行處理
?
基于多進程服務器的缺點:
? ?1.內存消耗比較大,每個進程都獨立加載完整的應用環境
? ?2.cpu消耗偏高,高并發下,進程之間頻繁進行上下文切換,需要大量的內存換頁操作
? ?3.很低的io并發處理能力,只適合處理短請求,不適合處理長請求
?
基于多線程服務器的優點:
? ? 1.對內存的消耗小
? ? ? ?線程之間共享整個應用環境,每個線程棧都比較小,一般不到1M
? ? 2.cpu上下文切換比較快
? ? 3.io的并發能力強
? ? ? ? javaVM可以輕松維護幾百個并發線程切換開銷,遠高于多進程幾十個并發進程的處理能力
? ? 4.有效利用多核cpu進行并行計算
?
基于多線程服務器的缺點:
? ? 1.不方便操作系統的管理
? ? 2.VM對內存的管理要求非常高,GC的策略會影響多線程并發能力和系統吞吐量
? ? 3.由于存在對共享資源操作,一旦出現線程"死鎖"和線程阻塞,很容易使整個應用失去可用性
?
nginx的重啟過程:
? ? 1.主進程重新加載應用環境
? ? 2.啟動新的woker進程,同時向老的woker進程發送消息
? ? 3.老的woker進程收到消息后不再處理新的請求,將之前收到的請求處理完畢后退出
? ? 4.主進程收到新的請求后就交給新的woker進程處理
總結
以上是生活随笔為你收集整理的基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell判断输入变量或者参数是否为空
- 下一篇: [Leetcode] Permutati