nginx工作进程处理请求的系统调用
生活随笔
收集整理的這篇文章主要介紹了
nginx工作进程处理请求的系统调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.找到nginx的工作進程
ps aux |grep nginx
?
2.使用 strace 監控該進程【系統調用】
strace -p 5439
3.對nginx發起簡單get請求
wget localhost
4.strace監控結果
?
二、簡單分析(參考《深入剖析Nginx》)
1.epoll_wait返回值為1,表示1個描述符存在可讀寫事件。epoll_wait用于輪詢I/O事件的發生。關于epoll,可以參考epoll_create, epoll_ctl和epoll_wait 實例講解。
2.accept4接受請求,返回的3為socket的文件描述符。
3.epoll_ctl把accept4返回的套接字加入到事件監聽機制里。
4.recvf從該socket文件描述符內讀取數據。
5.stat判斷文件index.html是否存在。
6.open打開文件index.html,返回文件描述符9。
7.fstat獲取文件狀態
7.writev通過描述符3將響應頭寫出。
8.sendfile把文件描述符9代表的文件通過描述符3f發出。
9.write往文件描述符4中寫日志信息。
10.close關閉文件描述符9。
...
?
總結
以上是生活随笔為你收集整理的nginx工作进程处理请求的系统调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++知识 interview
- 下一篇: nginx的函数调用