企业建设在线培训考试系统时,经常会提出一个问题:
“我们有1000人参加考试,服务器需要什么配置?”
有些人认为,只要购买一台16核、32GB内存的服务器,就可以支持1000人考试;也有人认为,1000人在线必须部署多台服务器。实际上,这两种说法都不够准确。
1000人参加考试、1000人同时登录、1000人同时答题和1000人在最后一分钟集中交卷,对服务器产生的压力完全不同。
服务器能否稳定支撑1000人同时在线,不能只看CPU核心数和内存大小,还要综合考虑考试业务流程、题目类型、自动保存频率、组卷方式、网络带宽、数据库性能、防作弊要求以及系统本身的技术架构。
本文以企业常见的在线考试场景为例,对1000人并发考试所需的服务器配置、网络带宽和压力测试方法进行说明。
一、先弄清楚“1000人同时在线”是什么意思
在实际项目中,“1000人考试”至少可能代表以下四种情况。
1.1000人在考试名单中
考试任务一共安排了1000人,但员工可以在一天或几天内自行参加考试。
这种情况下,实际同时在线人数可能只有100人至300人,服务器压力相对较小。
2.1000人在规定时间内参加考试
例如考试时间为上午9点至11点,1000名员工需要在这个时间段内完成考试,但并不要求所有人必须在9点整同时登录。
这种场景会出现明显的登录高峰和交卷高峰,但持续答题阶段的请求相对平稳。
3.1000人在同一时间统一开考
例如技能竞赛、安全生产考试、岗位资格考试和集团统一考核,要求所有人员在9点统一登录并开始答题。
系统需要在几分钟内完成身份验证、考试资格判断、试卷生成、题目加载和答题记录创建,瞬时压力会明显增加。
4.1000人同时进行视频监考
除正常答题外,系统还需要持续上传摄像头画面、抓拍照片、录制视频或进行人脸核验。
这种场景对网络、存储和媒体服务的要求远高于普通文字考试,不能按照一般考试系统的配置进行估算。
因此,企业在询问服务器配置之前,应先明确1000人是“考试总人数”“同时在线人数”,还是“实际业务并发人数”。
二、1000人在线不等于每秒只有1000个请求
在线考试不是一个只打开一次的网页。
考生进入考试后,通常会持续产生以下操作:
1.登录和身份验证;
2.获取考试任务;
3.判断考试资格;
4.生成或读取试卷;
5.加载题目和图片;
6.切换题目;
7.保存单题答案;
8.定时自动保存答卷;
9.上传抓拍照片;
10.检测切屏或离开页面;
11.提交试卷;
12.自动判分;
13.查询成绩;
14.生成统计数据。
假设1000名考生每30秒自动保存一次答题记录,平均每秒约产生33次保存请求。
但实际压力通常不会平均分布。如果所有考生的自动保存任务在相近时间启动,短时间内可能集中产生数百次甚至更多请求。
考试开始和考试结束时的压力更加明显。
开考阶段需要同时完成登录、权限判断、组卷、题目加载和答卷初始化;交卷阶段则需要完成答卷校验、答案保存、状态更新、自动判分和成绩写入。
因此,在线考试系统真正需要重点防范的,不是普通答题阶段,而是以下三个高峰:
1.集中登录高峰;
2.集中加载试卷高峰;
3.集中提交试卷高峰。
三、影响服务器配置的主要因素
同样是1000人同时在线,不同考试场景所需要的配置可能相差很大。
1.题目是否包含大量图片
纯文字单选题、判断题产生的网络流量较小。
如果试题中包含高清图片、复杂公式、音频或视频,考生进入试卷时需要加载更多资源,会明显增加带宽和文件服务压力。
2.使用固定试卷还是随机组卷
固定试卷可以提前生成并进行缓存。
随机组卷则需要根据题库分类、题型、知识点、难度、抽题数量和重复率等条件实时生成试卷,对数据库查询和业务计算提出更高要求。
3.自动保存频率
自动保存能够降低断网、浏览器异常或设备故障造成的答题记录丢失风险。
但保存频率设置得越高,数据库写入压力也越大。
合理的考试系统不应简单地让所有考生在同一秒保存数据,而应通过时间错峰、增量保存、请求合并等方式,减少瞬时压力。
4.是否启用防作弊功能
切屏监控、定时抓拍、人脸核验、摄像头监考和屏幕录制会额外占用计算、带宽和存储资源。
尤其是持续视频监考,通常需要单独设计媒体服务和存储架构。
5.历史数据规模
一个刚上线、只有几场考试的系统,与已经运行多年、保存数万场考试和大量答题记录的系统,数据库压力并不相同。
服务器配置不能只按照本次考试人数估算,还要考虑历史题库、答卷、成绩、日志和培训档案的数据规模。
6.部署环境
系统部署在企业局域网、互联网云服务器、政务云或企业自建机房,对网络条件和访问路径的要求也不相同。
局域网环境可能不受公网带宽限制,但需要检查交换机、防火墙和出口设备;互联网考试则需要重点评估服务器带宽、线路质量和不同地区的访问延迟。
四、1000人普通在线考试的参考配置
以下配置适用于以客观题为主、包含少量图片、不启用持续视频监考的常规企业考试。
需要说明的是,服务器配置只能作为方案设计的起点,最终能否支持1000人同时在线,仍应以实际压力测试结果为准。
1.单机部署参考配置
对于考试频率较低、业务相对简单、允许短时间维护的企业内部考试,可以采用单台服务器部署。
参考配置如下:
-
CPU:16核及以上;
-
内存:32GB至64GB;
-
硬盘:企业级SSD或NVMe固态硬盘;
-
系统盘:不低于200GB;
-
数据盘:根据题库、附件和答卷数量配置;
-
网络带宽:建议从50Mbps至100Mbps独享带宽开始评估;
-
数据库、应用程序和缓存可以部署在同一台服务器。
单机方案部署简单、成本相对较低,但应用程序、数据库和文件全部集中在一台服务器上,存在单点故障风险。
如果考试属于重要竞赛、资格认证、安全生产考核或集团统一考试,不建议仅依赖单机部署。
2.应用与数据库分离
对于正式考试和长期运行项目,建议将应用服务与数据库服务分开部署。
应用服务器参考配置:
数量:2台;
单台CPU:8核至16核;
单台内存:16GB至32GB;
硬盘:企业级SSD;
应用服务采用负载均衡方式运行。
数据库服务器参考配置:
CPU:16核及以上;
内存:64GB及以上;
硬盘:NVMe固态硬盘;
数据库文件、日志文件和备份文件尽量分盘存储;
配置定期备份和异地备份机制。
缓存服务器参考配置:
主要用于保存登录状态、考试状态、临时数据和热点数据。
文件服务配置:
单独保存课程资料、试题图片和考试附件;
有条件时可以使用对象存储;
避免大量静态文件直接占用应用服务器资源。
负载均衡可以将用户请求分发到多个应用节点,降低单台应用服务器的压力,并在某个应用节点出现异常时提供一定的容错能力。
3.高可靠集群部署
对于考试重要程度高、考试中断影响较大的企业,可以采用高可靠架构。
建议包括:
-
两台负载均衡服务器;
-
两台至四台应用服务器;
-
数据库主备或高可用部署;
-
Redis缓存主从或高可用部署;
-
独立文件存储;
-
实时监控和告警系统;
-
数据定时备份和异地备份;
-
应急切换和恢复方案。
这种架构的重点并不是单纯增加服务器数量,而是避免某一台设备故障导致整场考试中断。
五、数据库为什么是并发考试的关键
在线考试过程中,大量操作最终都需要写入数据库。
例如:
1.考生登录状态;
2.考试开始时间;
3.每道题的答案;
4.自动保存记录;
5.剩余考试时间;
6.防作弊日志;
7.交卷状态;
8.客观题成绩;
9.最终考试结果。
如果数据库索引设计不合理、连接数设置不当、磁盘性能不足,或者存在大量慢查询,即使应用服务器CPU和内存配置很高,系统仍然可能出现卡顿。
数据库优化通常需要重点关注以下内容:
1.答题记录表和成绩表索引;
2.数据库连接池大小;
3.慢查询;
4.锁等待;
5.事务范围;
6.批量写入;
7.热点数据缓存;
8.历史数据归档;
9.数据库备份任务执行时间;
10.磁盘读写延迟。
数据库服务器的内存不能全部分配给数据库缓存,还需要为操作系统、数据库连接、日志处理和其他服务保留足够空间。
数据库连接数也不是设置得越大越好。如果大量连接同时执行复杂查询,反而可能增加线程切换、内存占用和锁等待。
六、1000人考试需要多大带宽
普通文字考试的数据量通常不大,真正占用带宽的是试题图片、音视频资料、人脸抓拍和视频监考。
1.纯文字考试
如果试卷以文字题目为主,只包含少量图标和页面资源,50Mbps至100Mbps独享带宽通常可以作为初始评估范围。
实际使用前,还需要确认带宽是否为独享带宽、机房是否限制峰值流量,以及考生是否分布在不同地区。
2.图片试题较多
如果每张试卷包含大量高清图片,1000人集中进入考试时会同时下载图片资源。
此时可以考虑:
对试题图片进行合理压缩;
使用独立文件服务器;
启用浏览器缓存;
使用对象存储;
根据实际试卷大小,将带宽提高到100Mbps至200Mbps或更高。
假设每名考生首次打开试卷时需要下载5MB的页面和图片资源,1000名考生集中进入时,理论总数据量就达到约5000MB。
如果要求在一分钟左右完成加载,就需要较高的实际吞吐能力。
3.视频监考
视频监考不能按照普通考试带宽进行估算。
假设每名考生上传的视频平均码率为500Kbps,1000人同时上传时,仅视频数据理论上就需要约500Mbps上行带宽。
这还没有计算网络协议开销、画面抓拍、音频、回放、录像存储以及管理端查看产生的流量。
如果使用双摄像头、更高分辨率或屏幕录制,带宽和存储需求还会继续增加。
因此,1000人视频监考通常需要考虑千兆网络、独立媒体服务器、流媒体服务和专门的录像存储方案,而不是简单地给普通考试服务器增加内存。
七、系统架构比单纯提高服务器配置更重要
有些项目遇到系统卡顿后,第一反应是增加CPU和内存。
但如果系统本身存在同步处理过多、数据库频繁重复查询、答卷重复写入或者集中交卷没有进行削峰处理等问题,即使升级服务器,问题也可能再次出现。
支持大规模并发考试的系统通常需要在以下方面进行设计。
1.应用服务支持横向扩展
应用节点应尽量保持无状态,登录状态和临时考试数据可以通过共享缓存进行管理。
当并发人数增加时,可以通过增加应用服务器节点扩展处理能力。
2.静态资源与业务请求分离
试题图片、课程文件、系统脚本和样式文件不应全部通过业务应用动态读取。
静态资源可以通过独立文件服务、对象存储或缓存方式提供。
3.自动保存错峰处理
系统可以在自动保存时间上增加一定的随机偏移,避免1000名考生在同一秒钟提交保存请求。
同时可以只保存发生变化的答案,避免每次都重复提交整张试卷的全部答题记录。
4.集中交卷削峰
考试最后几分钟最容易出现集中交卷。
系统应避免把答卷保存、自动判分、成绩统计、部门排名、证书生成和通知发送全部放在一次请求中同步完成。
可以先可靠保存答卷和交卷状态,再根据业务要求完成后续统计处理。
5.防止重复提交
考生可能因为页面等待而连续点击交卷,也可能因网络异常自动重试。
系统需要通过唯一标识、状态校验和幂等控制,避免生成重复答卷、重复交卷记录或重复成绩。
6.建立完整运行监控
考试期间至少应监控以下指标:
CPU使用率;
内存使用率;
磁盘剩余空间;
磁盘读写延迟;
网络流量;
应用请求数量;
接口响应时间;
数据库连接数;
数据库慢查询数量;
缓存命中率;
系统错误日志;
在线人数;
已交卷人数;
答案保存失败数量。
八、1000人考试应该怎样进行压力测试
服务器采购完成,并不代表系统已经具备1000人并发考试能力。
正式考试前,应按照真实业务流程进行压力测试。
压力测试可以使用JMeter、k6等工具。压力机应与被测试服务器分开部署,避免压测工具和考试系统互相争抢CPU、内存和网络资源。
1.准备接近真实的数据
压力测试不能只使用一个账号和一张空白试卷反复发送请求。
测试环境应尽量准备:
1000个不同的考生账号;
与正式考试相近的组织部门;
接近真实数量的题库数据;
与正式考试相同的题型;
相近数量和大小的试题图片;
正式使用的随机组卷规则;
正式使用的自动保存规则;
正式使用的防作弊参数;
接近生产环境的历史成绩数据。
2.设计完整考试流程
压测脚本应模拟真实考生行为,包括:
登录系统;
进入个人考试任务;
获取考试资格;
开始考试;
读取试卷;
分页或切换题目;
保存答案;
定时自动保存;
提交试卷;
查询交卷结果。
只测试登录接口或只测试首页访问,并不能代表系统可以完成1000人的正式考试。
3.分阶段增加压力
建议按照以下阶段进行测试:
第一阶段:100人并发基础测试;
第二阶段:300人并发测试;
第三阶段:500人并发测试;
第四阶段:800人并发测试;
第五阶段:1000人并发目标测试;
第六阶段:1200人至1500人容量验证。
逐级增加并发,可以更容易找到系统从稳定运行到性能下降的临界点。
4.单独测试集中开考
模拟1000人在1至3分钟内完成登录、开始考试和加载试卷。
重点观察:
登录接口响应时间;
试卷生成速度;
数据库连接数;
应用服务器CPU使用率;
试题图片加载速度;
是否出现空白试卷;
是否出现试卷生成失败;
是否出现重复答卷。
5.单独测试自动保存
让1000名虚拟考生持续答题30分钟至60分钟,并按照正式考试规则自动保存。
重点检查:
是否存在答案丢失;
数据库写入是否持续稳定;
内存是否不断增长;
慢查询是否逐渐增加;
保存失败后能否自动重试;
考生刷新页面后答案是否完整恢复。
6.单独测试集中交卷
模拟60%至80%的考生在考试最后1至3分钟内集中交卷。
重点检查:
是否出现重复交卷;
是否出现提交超时;
答题记录是否完整;
客观题成绩是否正确;
考试状态是否全部更新;
交卷后能否正常查询结果;
排名和统计任务是否影响正常交卷。
7.开展稳定性测试
除了短时间峰值测试,还应让系统在目标并发下持续运行一段时间。
持续测试可以发现内存泄漏、数据库连接未释放、缓存数据堆积、日志增长过快等短时间测试不容易发现的问题。
九、压力测试不能只看平均响应时间
平均响应时间正常,并不代表所有考生的体验都正常。
例如1000个请求中,900个请求在1秒内完成,另外100个请求等待了10秒,平均值可能仍然看起来可以接受,但这100名考生已经明显感觉系统卡顿。
因此,压力测试建议重点关注以下指标:
1.P95响应时间;
2.P99响应时间;
3.请求失败率;
4.接口超时数量;
5.每秒请求数;
6.CPU峰值;
7.内存变化趋势;
8.数据库连接使用率;
9.慢查询数量;
10.磁盘读写延迟;
11.网络带宽峰值;
12.答案保存成功率;
13.交卷成功率;
14.成绩计算准确率;
15.异常日志数量。
企业可以根据项目要求设置验收指标。
例如:
常规页面P95响应时间不超过2秒;
答案保存P95响应时间不超过1秒;
交卷接口P95响应时间不超过3秒;
非预期请求失败率低于0.1%;
不出现答题记录丢失;
不出现重复成绩;
不出现已交卷状态回退;
压力测试结束后系统能够继续正常使用。
以上指标属于参考示例,正式项目应根据部署环境、网络条件和考试重要程度确定。
十、1000人并发考试常见的配置误区
1.把考试总人数当成并发人数
1000人考试名单并不代表1000人会同时请求系统。
如果不分析实际考试时间和操作节奏,服务器配置可能严重过高,也可能明显不足。
2.只看CPU和内存
磁盘性能、数据库索引、网络带宽和系统架构同样重要。
一台配置很高但使用普通机械硬盘的服务器,在大量答卷写入时仍然可能出现卡顿。
3.在应用服务器上运行压测工具
如果压力测试工具和考试系统部署在同一台服务器,会互相争抢CPU、内存和网络资源,导致测试结果不准确。
压力机应与被测试服务器分开部署。
4.只测试平稳答题
真正的系统风险往往发生在集中开考和集中交卷阶段。
如果只测试1000人保持在线,而不模拟登录、组卷、保存答案和集中交卷,就无法验证系统的真实承载能力。
5.只看页面是否能够打开
页面能够打开,不代表答案一定保存成功。
压力测试还要核对数据库中的答卷数量、答案数量、交卷状态和成绩结果。
6.使用空数据库进行测试
空数据库查询速度较快。
正式系统运行几年后,题库、答卷、日志和培训档案数据不断增加,性能可能发生变化。
因此,应使用接近正式数据规模的环境进行测试。
7.测试环境与正式环境差距过大
如果测试服务器、操作系统、数据库、网络带宽与正式环境差异较大,测试结果的参考价值就会下降。
正式压测应尽量使用与生产环境接近的配置。
十一、宏远培训考试系统如何规划并发考试方案
宏远培训考试系统在项目建设过程中,不是简单按照“1000人对应某一种服务器配置”的方式设计环境,而是根据实际考试业务进行综合评估。
项目建设前通常需要确认以下内容:
1.参考总人数;
2.最大同时在线人数;
3.集中开考时间范围;
4.集中交卷比例;
5.试卷题目数量;
6.使用固定组卷还是随机组卷;
7.试卷中的图片、音频和视频数量;
8.自动保存频率;
9.防作弊方式;
10.是否启用人脸核验;
11.是否进行视频监考;
12.使用局域网还是互联网访问;
13.采用私有化部署还是独立云服务器部署;
14.历史数据规模;
15.后续人数增长计划;
16.考试中断可能产生的影响;
17.是否需要高可用和灾备方案。
根据上述条件,可以选择单机部署、应用与数据库分离或者集群部署。
针对并发考试场景,宏远培训考试系统可围绕自动保存、集中交卷、重复提交控制、随机组卷、缓存应用、负载均衡、日志留痕和运行监控等环节进行配置和优化。
正式上线前,还可以根据实际考试流程开展基础测试、阶梯压测、峰值测试、稳定性测试和数据一致性核验。
这种方式比简单承诺“某个配置一定支持1000人”更加可靠,也更符合企业正式考试对数据完整性和系统稳定性的要求。
十二、总结
1000人同时在线考试需要什么服务器配置,并没有一个适用于所有项目的固定答案。
对于以文字客观题为主、不启用持续视频监考的普通考试,可以从16核、32GB至64GB内存的单机配置开始评估。
对于正式考试、重要竞赛和长期运行项目,建议采用负载均衡、双应用服务器、独立数据库、缓存服务和独立文件存储架构。
如果启用持续视频监考,还需要单独评估媒体服务器、千兆网络、录像存储和视频转发能力。
比服务器参数更重要的是:
1.是否明确真实并发场景;
2.是否采用合理的系统架构;
3.是否控制集中开考和集中交卷;
4.是否对数据库进行优化;
5.是否按照真实业务完成压力测试;
6.是否验证答题数据和成绩数据的完整性;
7.是否预留一定的扩展空间;
8.是否建立考试期间的监控和应急机制。
太原宏远智诚科技有限公司专注于企业培训考试系统建设,可根据企业人数、并发规模、考试类型和部署环境,提供人员管理、权限管理、课程学习、培训计划、题库管理、随机组卷、在线考试、模拟练习、证书管理、培训档案和数据统计等功能。
宏远培训考试系统支持企业私有化部署、独立云服务器部署以及集团多层级组织管理,适用于企业内部培训、安全生产考核、岗位知识考试、技能竞赛理论考试、制度宣贯、年度全员考试和集团统一考核等场景。