搜尋

首頁  >  問答  >  主體

apache的 prefork 和 worker問題

apache prefork是多進程處理請求的,worker模式是一個進程使用多個線程處理請求,等於說是多進程加多線程,處理並發請求可以更多,內存和CPU消耗更少,但有線程安全的問題。網路上有一大堆比較這兩個模式的差別,都是講了我說的多進程,多執行緒的。
問題一:既然worker模式可以提高高並發,省內存和CPU,那為什麼apache預設還要使用prefork模式呢?
問題二:apache用worker模式,然後再用linux的epoll模式,那是不是並發也能支援過萬了?

高洛峰高洛峰2748 天前439

全部回覆(1)我來回復

  • 仅有的幸福

    仅有的幸福2017-05-16 17:05:39

    apache當然可以使用worker模式進行對PHP處理了,就像你說的處理並發請求的能力增加,內存和CPU消耗會更少,但是唯一一點不足的是,prefork是多進程多線程的,而有些PHP擴充有線程安全的問題,所以碰到不存在有線程安全的PHP擴展,完全可以使用,但如果存在,那麼就最好別用,不然會造成數據的不一致性的,另外apache如果使用epoll確實也可以,但併發過萬估計還是有點吃力

    回覆
    0
  • 取消回覆