• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Apache性能提示

    發布: 2007-7-02 21:50 | 作者: admin | 來源: | 查看: 9次 | 進入軟件測試論壇討論

    領測軟件測試網

    簡介
        Apache是把正確性放在首位、把速度放在其次的通用Web服務器。即使這樣,它的性能十分令人滿意。許多站點只有不到10M的出口帶寬。Apache能夠在這些站點的低端Pentium服務器上全速工作。實際上,擁有更多帶寬的站點出于一些原因(比如大量的CGI和數據庫事務處理)需要用一臺以上的機器滿足帶寬需求。這些原因導致了以往的Apache開發工作集中在正確性和可配置性。

        不幸的是許多人過于重視某些指標,并把它們的原始數據當作評價Web服務器優劣的標準。被普遍接受標準的是“原始最低性能(bare minimum performance)”,而在這以外的其他速度指標只適用于很小部分的市場需求。但為了避免Apache在一些市場中受到排擠,我們在Apache1.3上盡了相當的努力,將它與高端服務器的差距減至最小。

        另有一些人只是想試試這些東東能運行得多快。這些人竭力把Apache最后一滴性能擠出來,他們也想看看究竟是什么影響了Apache的性能。這篇文章的其余部分就是針對他們而撰的。

        請注意本文適用于Unix上的Apache1.3,部分內容適用于NT平臺。目前的Apache尚未在NT上進行優化。事實上,不同的編程模型使它在NT上的性能表現相當不好。(即POSIX模型。NT借助POSIX子系統模擬這種編程標準,因此效率很低。Apache2.0拋棄了POSIX直接與操作系統打交道,性能將有所飛躍——譯者注)

    關于硬件平臺和操作系統
        最直接影響Web服務器性能的硬件要數RAM。一臺Web服務器從不應該訪問內存交換區。交換增加了每次請求的延時,用戶將因此認為“不夠快”。他們會點擊[停止]并重新裝載網頁,這將進一步增加服務器的負擔。您能夠也有必要調節MaxClients,使您的服務器不會衍生太多的子進程而導致交換。

        除此之外的事情就沒那么關鍵了。擁有快速的CPU、快速的網卡和硬盤都可以讓您的服務器“足夠快”。其實這足夠快個詞是需要憑經驗去體會的。

        操作系統的選用也是值得斟酌的大問題。普遍的準則是:及時得到操作系統提供商的最新TCP/IP補丁。迅速涌現的HTTP服務打破了截止到1994年乃至95年的Unix內核中設定的許多假設情況。理想的選擇包括目前的FreeBSD和Linux。

    關于運行時設置(Run-Time Configuration)
    HostnameLookups
        1.3版以前的Apache中,HostnameLookups的缺省值是On,這將導致每次請求時服務器都要進行NDS查詢,從而增加了延遲。Apache1.3將此缺省值設為Off。在1.3及以后的版本中,如果您使用了任何allow from domain或deny from domain命令,所付出的代價將是兩次DNS查詢帶來的延時(在一次逆向查詢后跟著一次正向查詢,以保證前者得到的結果是真實的)。因此為了得到最理想的性能應避免使用HostnameLookups(使用IP地址而非域名也是個好主意)。

        限制命令的使用范圍是可行的,比如使用類似的容器。這種情況下,DNS查詢只發生在符合條件的請求中。下面的例子使查詢只發生在.html和.cgi文件的請求中:

    HostnameLookups off
    flock(18, LOCK_UN) = 0
    sigaction(SIGUSR1, {SIG_IGN}, {0x8059954, [], SA_INTERRUPT}) = 0
    getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=.net_addr("127.0.0.1")}, [16]) = 0
    setsockopt(3, IPPROTO_TCP1, [1], 4) = 0
    read(3, "GET /6k HTTP/1.0rnUser-Agent: "..., 4096) = 60
    sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}) = 0
    time(NULL) = 873959960
    gettimeofday({873959960, 404935}, NULL) = 0
    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) = 0x400ee000
    writev(3, [{"HTTP/1.1 200 OKrnDate: Thu, 11"..., 245}

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>