国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

Apache 性能最優化分析(10)

2024-08-27 18:26:00
字體:
來源:轉載
供稿:網友
 為了實現虛擬主機,Apache需要用本地socket地址接受連接:

    getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0

  在許多情況下都有可能去掉這個調用(比如沒有虛擬主機,或者在Listen命令中的地址不含通配符)。但目前尚未對此進行優化。

Apache關掉了Nagle算法:

  setsockopt(3, IPPROTO_TCP1, [1], 4) = 0

  考慮到John Heidemann的論文中提及的問題,請關注兩個time調用:

    time(NULL) = 873959960
    ...
    time(NULL) = 873959960


  第一個出現在請求的開始,另一個用于寫入日志。前者是正確實現HTTP協議所必須的,后者的出現是因為通用日志格式指定了記錄中包含時間戳。自定義日志模塊能夠去掉這個調用。或者您可以用某些方法把時間移到共享內存中。參見補丁一節。

  正如前文描述的那樣,ExtendedStatus On將引發兩次gettimeofday調用和一次times調用:

    gettimeofday({873959960, 404935}, NULL) = 0
    ...
    gettimeofday({873959960, 417742}, NULL) = 0
    times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 446747


  ExtendedStatus Off (即缺省值)將避免這些調用。

  這個調用看起來也許有些奇怪:

  stat("/home/dgaudet/ap/apachen/htdocs/6k", {st_mode=S_IFREG|0644, st_size=6144, ...}) = 0
它用于生成CGI程序所需的PATH_INFO環境變量。事實上,對于指向/cgi-bin/printenv/foobar的某個請求,stat將被調用兩次。第一次調用查詢/home/dgaudet/ap/apachen/cgi-bin/printenv/foobar,但它并不存在;第二次調用查詢/home/dgaudet/ap/apachen/cgi-bin/printenv,它是存在的。無論如何,對于靜態請求而言,至少需要一次調用。文件尺寸和修改時間被用來生成HTTP頭標(比如Content-Length和Last-Modified)并用來實現協議的特色部分(比如If-Modified-Since)。一個聰明的服務器能夠對非靜態的請求避免調用stat,但是這樣的實現對于模塊化的Apache來說太難了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 侯马市| 枞阳县| 金平| 永福县| 南安市| 武冈市| 隆安县| 湘乡市| 泽州县| 白玉县| 西和县| 馆陶县| 台山市| 惠州市| 孟村| 津南区| 土默特左旗| 西藏| 马尔康县| 广汉市| 宝山区| 丰宁| 苍南县| 台东市| 明溪县| 新和县| 德江县| 专栏| 沈阳市| 莎车县| 府谷县| 麦盖提县| 屯门区| 三穗县| 许昌市| 宜兴市| 渑池县| 溆浦县| 康乐县| 方山县| 任丘市|