快速业务通道

Apache 性能最优化分析(5)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-06

 USE_FLOCK_SERIALIZED_ACCEPT

  此方法用flock(2)系统调用对一个锁文件加锁。(此文件在LockFile命令中指定)

  USE_FCNTL_SERIALIZED_ACCEPT

  此方法用flock(2)系统调用对一个锁文件加锁。(此文件在LockFile命令中指定)

  USE_SYSVSEM_SERIALIZED_ACCEPT (1.3版及以后)

  此方法借助SysV的信号量(semaphores)实现互斥。但不巧的是SysV信号量有一些负面作用。一是Apache可能在清除信号量之前非正常终止;二是在使用信号量API时需要考虑到任何与服务器UID相同的CGI程序可以进行拒绝服务攻击(就是说所有的CGI程序都可以这样做,除非使用suexec或cgiwrapper之类的方法)。所以,这种方法并不被IRIX之外的系统广泛采纳(由于大多数IRIX系统上,使用前两种方法的代价太大)。

  USE_USLOCK_SERIALIZED_ACCEPT

  (1.3版及以后)此方法仅在IRIX上可用。它调用usconfig(2)创建互斥量。虽然这种方法避免了对SysV信号量的种种争议,但它不是IRIX的缺省方案。这是由于在单处理器的IRIX系统 (5.3或6.2)上,uslock代码比SysV信号量慢两个数量级;但在多处理器的IRIX中前者比后者快一个数量级。这无非使问题复杂化了。所以在多处理器IRIX系统上,您需要用如下的附加参数编译Apache:

    在EXTRA_CFLAGS中添加-DUSE_USLOCK_SERIALIZED_ACCEPT
    USE_PTHREAD_SERIALIZED_ACCEPT


  
(1.3版及以后)此方法实现了POSIX标准互斥量。它理应可以工作在任何实现了全部POSIX线程规范的系统上,但事实是只有在Solaris 2.5或以上的系统及特定的配置中才能工作。如果您尝试这种方法的话,需要小心服务器挂起或者没有响应。服务器在只输出静态网页的情况下运行得很好。

  如果您的系统上有其他串行化的方法,为它书写代码(并把补丁寄给Apache)是值得的。

  有一个考虑到但从未实现的方案是对循环部分地串行化--即允许一定数目的进程进入循环。在同一时刻可运行若干进程的多处理器系统上,这个主意是满不错的。而且前面提到的方案并没有充分利用带宽。可由于高度并行化的服务器实在少见,这个方案的优先级比较低。

  为了得到最佳性能,不用多侦听命令是最理想的。请继续往下看。 关键词:优化

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号