select 水平觸發 檔案描述符資料有最大限制 1024
poll 與select基本相同 無最大限制
sigio 邊緣觸發
epoll 水平+邊緣 基於事件的就緒通知方式 linux2.6
kqueue 基本於epoll相同 freebsd
水平觸發 通過乙個系統呼叫select()來監視包括多個檔案描述符的陣列,方法返回後,該陣列中就緒的檔案描述符會被核心修改標誌位,從而程序可以獲得這些檔案描述符進行後續的讀寫操作。
邊緣觸發 通過實時訊號,告訴我們哪些檔案描述符是就緒的,並且只說一次,如果沒有採取行動,則不再告知。
lighttpd 預設使用水平觸發 epoll
nginx 預設使用邊緣觸發 epoll
apache select
直接io
o_direct 不通過核心緩衝區
o_sync 通過核心緩衝區但是直接讀寫磁碟 更安全 可將機器故障時資料的丟失減少到最少
sendfile可以直接將磁碟檔案的特定部分直接傳送到socket描述符,加快靜態檔案的請求速度
apache的fork模式 由主程序負責accept()來自客戶端的連線,一旦接收到連線後,馬上fork()乙個新的worker程序處理,處理完成後,此程序銷毀。
prefork() 由主程序預先建立一定數量的子程序,每個請求由乙個子程序來處理,但每個子程序可處理多個請求。 主程序只負責管理子程序
所以,apache的多程序模型的開銷限制了它的併發連線數,但是相對更安全,乙個程序不會影響到另外其它的程序。
worker多路處理模組 由乙個程序中通過多個執行緒處理多個連線,目的是減少prefork模式太多程序的開銷。但其中仍然存在上下文切換的開銷。
apache fork prefork woker程序
lighttpd nginx採用單程序模型
多路io就緒通知的應用
lighttpd和nginx可以支援配置work程序的數量,預設是0,由主程序來進行worker程序的工作,配置後,lighttpd主程序建立兩從此worker程序,主程序不進行連線處理。
lighttpd的配置方式
server.event-handler = "linux-sysepoll"
select/poll會掃瞄所有的檔案描述符,而epoll只關注那些活躍連線,不在死連線上浪費時間。
--------------
兩天就囫圇吞棗地看了這麼點東西 而且還沒記住 唉 悲哀啊
io 有關convertRect問題
pragma mark lynewhomeviewmodeldelegate 在 item.superview convertrect item.frame toview self.view.window 時 如果獲取的座標不正確,那就應該檢視是否布局還沒有完成,上面的 因為要獲取的是filterh...
sql server 2008有關SQL的模糊查詢
執行 資料庫查詢時,有完整查詢和模糊查詢之分。一般模糊語句如下 select 字段 from 表 where 某欄位 like 條件 其中關於條件,sql提供了四種匹配模式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請運用兩個百分號 表示。比如 select fro...
web server 考慮的問題
高併發web伺服器處理 一 html靜態化 效率最高 消耗最小的就是純靜態化的html頁面,所以我們盡可能使我們的 上的頁面採用靜態頁面來實現,如使用資訊發布系統cms 二.伺服器分離 對於web伺服器來說,不管是apache iis還是其他容器,是最消耗資源的,於是我們有必要將與頁面進行分離,在處...