国产探花免费观看_亚洲丰满少妇自慰呻吟_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來說太難了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雅江县| 锦州市| 安丘市| 平遥县| 镇安县| 东源县| 九龙县| 乌鲁木齐市| 松江区| 微山县| 特克斯县| 章丘市| 子长县| 武邑县| 尤溪县| 龙泉市| 阜新市| 镇坪县| 湘潭市| 乾安县| 和田市| 万盛区| 虞城县| 外汇| 寿光市| 丹寨县| 林周县| 遵化市| 庄河市| 仙居县| 河曲县| 邢台县| 盐城市| 隆安县| 广平县| 荣成市| 永城市| 建始县| 黔西| 镇赉县| 辽阳市|