本文先介绍一下各种WEB服务器平台,然后对影响WEB服务器性能的各方面做了分析,最后解析了目前使用最普遍的Apache服务器在服务请求高峰时的响应延迟现象
分析服务器的工作模式 尽管在市场上可以购买到各式各样的Web服务器,但如果单就并发访问的处理方式来看,所有的服务器大体可以分成基本的四类。
- Single-threaded模式(单线程模式)
- Fork模式(分叉模式)
- Pre-Fork模式(预分叉模式)
- Threaded模式(线程模式)
Single-Threaded模式 single-threaded服务器通常采用选择的方法在单个进程中处理所有的访问请求。对只配置了一个处理器的机器来说,这类服务器是非常高效的。但是,它并不能通过增加额外的处理器来相应地提升性能。
在这次模拟测试中,我们在y轴标注的请求数量最大值为100条/秒,这是为了方便评估
single-threaded模式下的性能。模拟的服务器每秒处理的请求数量维持在70条,即便如此,这已和实际使用情况非常相近。我们发现,在该环境下,当处理较轻的负载时,
single-threaded模式是非常高效的,响应速度也非常迅捷。随着负载的增加,我们又发现,服务器的性能表现每况愈下,这种状况只能通过搭配更好的硬件才能改善。
Fork模式 通常来说,通过追加进程来处理每个请求的服务器由于多了一个增加新进程的环节,效率比较低下,响应速度也比较慢。由于通过这种方式在应付大批量的客户端请求时会过多地消耗资源,显然,随着请求数量和频率的增加,系统的性能将逐步下降。
fork模式下的测试结果和
single-threaded模式下的测试结果非常相似。不同的是,由于每一个新进程的成本较高,相对于
single-threaded服务器来说,这种模式下的管理维护成本会随着http服务器进程的增加而增加。
下一页>>
分析服务器工作模式续