沈天真
作者沈天真·2020-11-11 12:06
售前支持·IPS

单节点支持连接数还是不够多 ?开启Gzip后 ,CPU资源不够用 ?---- Nginx on K1 Power 可以帮忙

字数 2382阅读 3879评论 0赞 1

Nginx

2002年,俄罗斯程序员 Igor Sysoev 写出了一个叫 Nginx(和Engine X谐音,取引擎之义)的Web应用及反向代理工具。当时 C10K(Concurrency 10K,1万并发)问题还是困扰绝大多数 web服务器的一个难题。Nginx利用异步事件驱动的架构写成,是C10K问题的一个很好的答卷。 Nginx的第一个公开发行版是在2004年发布的,之前都是作为俄罗斯访问量第二的网站 Rambler https://www.rambler.ru/ 的内部使用。Nginx的主要优势在于“轻、快、活”:

轻:很低的资源占用,甚至能在很多嵌入式设备上运行。

快:响应速度超快,几乎不会由于高并发影响响应速度。

活:配置灵活,广泛的模块支持。

Nginx Plus

顾名思义,就是Nginx的加强版或者扩展版。我们知道Nginx是开源的、免费的,但是NGINX Plus的很多功能就需要收费了。Nginx Plus 可以作为一个负载均衡器,一个Web服务器,还可以作为一个内容缓存。既然是Nginx的加强版,那无疑功能会比Nginx更加强大。NGINX Plus在开源Nginx已有的功能基础上,提供了许多适合生产环境的专有功能,包括session一致性、实时更新API配置、有效的健康检查等。

NGINX Plus R5 和更新的版本可以支持基于TCP应用的负载均衡(比如MySQL)。这就不仅仅限制于Http的负载均衡,而是大大扩充了Nginx作为负载均衡器的作用范围。R6中TCP负载均衡功能得到很大的扩充,加入了健康检查、动态更新配置、SSL终端等。等到了R7,TCP负载均衡功能就基本和Http负载均衡差不多了。再到了R9,就可以支持UDP。通过这些更新,NGINX Plus 远远超过了web应用的层面,成为了一款意义更为广泛的负载均衡器。毕竟协议是基础层面的东西,支持的协议越多,应用面也越广。从最初的Http/SMTP到TCP再到UDP,NGINX Plus一步步的变得越来越强大。

Nginx Plus 从 R10 开始原生支持 Power 平台 。

https://www.nginx.com/blog/nginx-plus-r10-harnesses-ibm-power/

Nginx Ingress

Nginx-ingress 是热门的 ingress-controller,作为反向代理将外部流量导入集群内部,将 Kubernetes 内部的 Service 暴露给外部,在 Ingress 对象中通过域名匹配 Service,这样就可以直接通过域名访问到集群内部的服务了。相比其他ingress-controller 例如 traefik https://traefik.cn/, Nginx-ingress 性能更加优秀,但是配置比 traefik 要稍微复杂一点,当然功能也要强大一些,支持的功能多很多。

Nginx on K1 Power 安装

以CentOS 7 举例,可以到 EPEL库

http://mirrors.yun-idc.com/epel/7Server/ppc64le/Packages/n/ 里下载编译好的rpm包来安装,或者配置yum源后用yum安装。

当然EPEL库里面不一定有想要安装的版本,这个时候也可以通过编译Nginx源码来安装。相关步骤和x86平台没有区别。

Nginx Plus on K1 Power 安装

Nginx Plus 从R10版本开始,官方支持Power ,购买 Nginx Plus 的时候可以直接购买Power版本。

Nginx Ingress on K1 Power 安装

Nginx Ingress 通常都与Kubernetes集成在一起,在 K1 Power 上安装 Nginx Ingress ,需要从源码编译来制作镜像。具体的步骤可以参考官方文档

https://docs.nginx.com/nginx-ingress-controller/installation/building-ingress-controller-image/

K1 Power 运行 Nginx 的核心优势

SMT 4 (Simultaneous Multi threads)

K1 Power 运行Nginx的核心优势在于Power芯片的SMT 并发多线程技术,以一款服务器FP5280G2为例,2路服务器可以提供 2 socket 22core/socket 4threads/core = 176 threads 个CPU线程,在Linux系统中表现为176个逻辑核。

熟悉Nginx性能优化的同学都清楚,Nginx性能优化中有一个重要的参数就是 worker_processes,这个参数在FP5280G2上,我们可以设置为88 (2222)。

NX Accelerator – Gzip Engine

Nginx还有一个特性是Gzip 压缩,开启Gzip压缩会消耗一定的CPU资源,但是很显然,在K1 Power 上,相比较x86,无需担心这种消耗会导致整个系统性能的降低,并且可以适当提高Gzip压缩等级。

另外,在Power 9 芯片内部,内置了一个专门用于Gzip 加速的协处理器叫 NX Accelerator ,可以将Gzip压缩直接卸载到这个协处理器上,压缩速度更快,消耗CPU资源更少。

这个功能已经在BAT中的一家使用到生产环境。如果您有相关项目机会,当中使用到Gzip的,想看看效果,可以在社区私信我。

以上是Nginx在 K1 Power 上的概述,如果您希望获得更好性能以提升客户体验,或者整合现有x86服务器以降低Nginx成本,可以考虑K1 Power平台,相信不会让您失望。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广