本文档是基于实际项目编写的,适用于 OA2019 及以上版本(基于 nginx)的性能调优方案。本文档首先介绍此项目的实际情况,然后分析问题并找到其性能瓶颈,并针对其瓶颈制定优化方案。
基础环境:
CPU | 两个 CPU,每个 CPU 8 核 |
内存 | 64G |
硬盘 | 机械硬盘,大小未知 |
操作系统 | windows server 2008 32 位(或者更低) |
使用情况
账号总数 | 约 6000(以后会增加到上万人) |
日常在线人数 | 不到 1000(以后会增加到几千人) |
数据量 | 刚开始使用,数据量很小 |
此项目的特点是用户数量大,活跃用户多,产生的数据量也会比较大,对服务器会产生较大压力。这就要求服务器需要有较好的硬件资源,能支持较高的并发访问。
① CPU、内存配置较高,不会出现瓶颈。
② 硬盘为机械硬盘,性能较低,使用 OA 的人数较多,数据量会飞快增长,并发访问人数较多,对数据库压力会较大,容易出现瓶颈
③ 操作系统为老的 windows server,对于并发请求处理能力不够,同
时,系统为 32 位,可以调动的内存只能达到 4G,内存资源无法充分利用,是一个极大的瓶颈
④ OA 自带的 nginx 无法发挥 CPU 多核的优势
目前 OA 服务器推荐的环境:
硬盘 | 固态硬盘 推荐数据库所在盘是固态硬盘 | 解决数据量大和数据库并发访问大时的数据库执行效率 |
操 作 系 统 (win) | 优先级由高到底排列 windows server 2016 64 位 windows server 2012 64 位 | 对大量并发访问支持较好,能调用更多硬件资源,尤其是内存资源 |
操 作 系 统 | centos 64 位 | 若在线用户数 2000 以 |
(linux) | 上,需要使用 linux 操作系统+固态硬盘 需要用户有专业人员维护 Linux 服务器 |
由于 windows server 的某些限制,OA 自带的 nginx 无法利用 CPU 的多核性能(配置 nginx 多进程工作也无法利用多核 CPU),因此需要使用支持多核 CPU 的 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,开启 nginx
技术支持QQ2524837118
stop.bat,关闭 nginx
双击 start.bat,开启新 nginx,访问 http://localhost:90/
可以访问,说明 nginx 已正常运行: