物聯網工程運維原理(實驗四)

1.Apache的請求響應
三種模式:
Prework、Worker、Event
(1)Prefork模式:
預先生成子進程,等待用戶請求。
好處:
防止併發突增——臨時產生子進程耗資源
例如:飯店門口不能只站一個服務員,防止客人突然增多。
進程間互不干擾
缺點:
佔資源:消耗cpu資源(進程的創立、進程間的切換、刪除進程)、內存
Apache沒有多線程的概念,所以一個主進程生成多個子進程,每個子進程生成一個線程。

(2)Worker模式:
預生成多個子進程和多個線程
好處:
開銷小
併發優

壞處:
線程崩潰->進程遭殃;線程抖動
keep-alive(保證存活狀態)空閒到超時都沒人管
可以由子進程生成多個線程

(3)Event模式:
專線程管理keep-alive(特例:https)
引入EPoll事件通知:
1、apache 2.2.9+(以後的版本)
2、LInux kernel 2.6+

2.Apache的I/O方式
I/O方式:同步、阻塞

3.Apache如何拿結果:
Select:遍歷
併發數量:
posix_types.h
FD_SETSIZE 1024
EPoll:事件通知

4.Apache爲何不能高併發
(1)請求響應:多線程/多線程
(2)I/O方式:同步、阻塞
(3)拿結果:
select
poll
epoll+callback

5.Nginx爲何能高併發
(1)請求響應:單線程I/O複用
(2)I/O方式:異步、非阻塞
(3)拿結果:Epoll
6、Apache的優勢
(1)穩定:多線程、bug少
(2)模塊多、使用方便
(3)rewrite功能比Nginx強大
(4)對動態請求友好
(5)對PHP友好
(6)計算密集能力比Nginx強
7.Nginx+Apache
Nginx作爲反向代理在前
Apache作爲WebServer在後
動態請求交給Tomcat或者PHP等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章