IMHS网页应用服务器系统
简介
该系统可以提供强大的高性能Web和反向代理服务,同时也提供了无缓存的反向代理加速,简单的负载均衡和容错。
功能优势
(1) 高并发和高性能同时具备
它支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
往往高并发只需要我们对每个连接所使用的内存尽量的少就可以达到,还具有高并发的同时达到高性能还需要非常好的设计,那么imhs可以达到什么样的一个标准呢?比如说我们现在主流的一些服务器,32核64G的内存可以轻松的达到数千万的并发连接,如果是处理一些简单的静态资源请求可以达到100万的rps这样的级别。
(2) 具有很高的稳定性。
其它 HTTP 服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前 apache 一旦上到 200 个进程以上,web响应速度就明显非常缓慢了。而采取了分阶段资源分配技术,使得它的 CPU 与内存占用率非常低。imhs 官方表示在保持 10,000 个无活动连接时,它只占 2.5M 内存,所以类似 DOS 这样的攻击对 imhs 来说基本上是毫无用处的。就稳定性而言,imhs 比 lighthttpd 更胜一筹。
(3) 可扩展性非常好
主要体现在它的模块化设计,模块化设计非常的稳定使得imhs的第三方模块生态圈非常的丰富,丰富的生态圈为我们imhs丰富的功能提供了保证。
(4) 支持热部署。
它的启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行升级。
可以在不停止服务的情况下升级imhs,这个功能对于imhs来说非常的重要。因为在imhs上可能跑了数百万的并发连接,如果是普通的服务我们可能只用关掉进程再重启的方法就可以处理好,但是对于imhs而言,因为关掉imhs进程会导致操作系统为所有已经建立连接的客户端发送一个tcp中的reset复位包,而很多客户端是没有办法很好的处理复位请求的,在大并发场景下一些偶然事件就会导致必然的恶性结果,所以热部署是非常有必要的。
(5) 采用 master-slave 模型
能够充分利用 SMP (对称多处理,一种并行处理技术)的优势,且能够减少工作进程在磁盘 I/O 的阻塞延迟。当采用 select()/poll() 调用时,还可以限制每个进程的连接数。