欢迎光临
我们一直在努力

Apache性能提示-网管专栏,WEB服务

建站超值云服务器,限时71元/月

简介
    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=inet_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}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Apache性能提示-网管专栏,WEB服务
分享到: 更多 (0)