本文档是基于实际项目编写的,适用于 OA2019 及以上版本(基于 nginx)的性能调优方案。本文档首先介绍此项目的实际情况,然后分析问题并找到其性能瓶颈,并针对其瓶颈制定优化方案。
2 问题分析
2.1 项目特点分析
此项目的特点是用户数量大,活跃用户多,产生的数据量也会比较大,对服务器会产生较大压力。这就要求服务器需要有较好的硬件资源,能支持较高的并发访问。
2.2 基础环境分析
① CPU、内存配置较高,不会出现瓶颈。
② 硬盘为机械硬盘,性能较低,使用 OA 的人数较多,数据量会飞快增长,并发访问人数较多,对数据库压力会较大,容易出现瓶颈
③ 操作系统为老的 windows server,对于并发请求处理能力不够,同
时,系统为 32 位,可以调动的内存只能达到 4G,内存资源无法充分利用,是一个极大的瓶颈
④ OA 自带的 nginx 无法发挥 CPU 多核的优势
3 解决方案
3.1 推荐环境
目前 OA 服务器推荐的环境:
硬盘
固态硬盘
推荐数据库所在盘是固态硬盘
解决数据量大和数据库并发访问大时的数据库执行效率
操 作 系 统
(win)
优先级由高到底排列
windows server 2016 64 位
windows server 2012 64 位
对大量并发访问支持较好,能调用更多硬件资源,尤其是内存资源
操 作 系 统
centos 64 位
若在线用户数 2000 以
(linux)
上,需要使用 linux
操作系统+固态硬盘
3.2 并发支持能力调优
由于 windows server 的某些限制,OA 自带的 nginx 无法利用 CPU 的多核性能(配置 nginx 多进程工作也无法利用多核 CPU),因此需要使用支持多核 CPU 的 nginx 版本。
3.2.1 安装支持多核的 nginx
3.2.1.1 下载 nginx
Nginx 下载路径:nginx for Windows
将解压后的文件夹放到 MYOA 目录下:
3.2.1.2 替换配置文件
直接将原 nginx 里的 conf 文件夹拷贝到 nginx 1.13.10.1 Crow 下,合并并替换文件
3.2.1.3 添加依赖文件
新 Nginx 的运行需要 msvcr100.dll 这个文件,标准 OA 中就有,将
MYOA\bin\msvcr100.dll 文件拷贝到 nginx 1.13.10.1 Crow 目录下
3.2.1.4 修改监听端口
目前原有的 nginx 还在正常运行,在完全替换 nginx 前,先将新 nginx 的监听端口改为 90
配置文件:
3.2.1.5 打开 nginx 的监控页
新 nginx 有一个很详细的状态监控页面,可以查看 nginx 的运行状态等信息, 方便我们了解 nginx 是否配置生效
下面这个文件告诉我们怎么打开这个监控页
将配置项拷贝到相应的地方:
3.2.1.6 开启 nginx 并测试
执行注册表文件 Tweak-Optimize tcpip parameters for nginx connections.reg,注册必要服务:
编写两个 bat 文件:
start.bat,开启