Apache 性能最優化分析(12)_Windows教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!
      延遲關閉引發了四個系統調用:

          shutdown(3, 1 /* send */) = 0
          oldselect(4, [3], NULL, [3], {2, 0}) = 1 (in [3], left {2, 0})
          read(3, "", 2048) = 0
          close(3) = 0


        這些在前文已經提及。

        當我 們使用了-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT、-DBUFFERED_LOGS 和 ExtendedStatus Off 的優化參數后,最終得到的跟蹤結果如下:

      accept(15, {sin_family=AF_INET, sin_port=htons(22286), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3
      sigaction(SIGUSR1, {SIG_IGN}, {0x8058c98, [], SA_INTERRUPT}) = 0
      getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
      setsockopt(3, IPPROTO_TCP1, [1], 4) = 0
      read(3, "GET /6k HTTP/1.0\r\nUser-Agent: "..., 4096) = 60
      sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}) = 0
      time(NULL) = 873961916
      stat("/home/dgaudet/ap/apachen/htdocs/6k", {st_mode=S_IFREG|0644, st_size=6144, ...}) = 0
      open("/home/dgaudet/ap/apachen/htdocs/6k", O_RDONLY) = 4
      mmap(0, 6144, PROT_READ, MAP_PRIVATE, 4, 0) = 0x400e3000
      writev(3, [{"HTTP/1.1 200 OK\r\nDate: Thu, 11"..., 245}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6144}], 2) = 6389
      close(4) = 0
      time(NULL) = 873961916
      shutdown(3, 1 /* send */) = 0
      oldselect(4, [3], NULL, [3], {2, 0}) = 1 (in [3], left {2, 0})
      read(3, "", 2048) = 0
      close(3) = 0
      sigaction(SIGUSR1, {0x8058c98, [], SA_INTERRUPT}, {SIG_IGN}) = 0
      munmap(0x400e3000, 6144) = 0

        只剩下19個系統調用了。其中有四個很容易被移走,但沒有什么必要了。

        附錄:可用的補丁

        這里有一些1.3版的性能補丁。但隨著1.3.0版的發行它們可能有些過時。對掌握一點C語言的知識的人來說,升級它們并不是難事。特別地:
      • 有一個補丁去掉所有time(2)系統調用。
      • 有一個補丁去掉mod_include中的許多系統調用,它們僅出于向后兼容而被少數站點所使用。
      • 有一個補丁結合了上面兩個特性,并通過去掉一些特性使服務器加速。

      來源:網絡搜集//所屬分類:Windows教程/更新時間:2013-04-15
      相關Windows教程