在单核centos7服务器上部署IO密集型项目

博主分享了在资源有限的1核2G内存虚拟服务器上,如何优化一个IO密集型的游戏后台管理系统。通过禁止用户重复提交、使用队列处理HTTP请求、优化MySQL操作等手段,成功缓解服务器压力,确保后台管理平台在大量IO操作时仍能响应。此外,还提供了详细的服务器配置和优化步骤。
摘要由CSDN通过智能技术生成

前阵子为爱发电,一边学习layUI框架,一边搭建了一个对接了官方API的游戏后台管理系统,用来记录玩家的游戏内数据,服务器由另一个为爱发电的小伙伴提供,我负责前端/后台/数据库以及服务器环境的部署。
(为爱发电的意思就是——没钱。)
服务器是1核2G内存的虚拟空间,然而这个游戏的API架构又导致了项目是IO密集型,请求并记录一个玩家的数据需要进行上百次的HTTP请求,这对单核服务器压力实在是过于巨大,我经过多次优化目前可以承受多人同时请求数据服务器不至于无响应。在此记录一下我在各方面的优化,后台和服务器运维实在是超出我的专业范围,如果有小伙伴有更好的优化方案请指点一二~

优化

禁止用户重复提交

通过检查日志,发现有人会在短时间内重复提交数据,于是在servlet中增加了IP检查,并且设置了30分钟内只能提交一次,防止重复提交导致的重复数据和无效的服务器资源占用。

使用队列

将HTTP请求量最大的逻辑放到队列中处理,由子线程进行循环处理,每次处理完成后手动休眠1000毫秒。这一步主要是为了给强行暂停服务器数据的处理,可以把新来的处理请求添加到队列中去。

优化MySql

1.需要插入多行数据的,尽量拼接成一条sql语句,减少对数据库的操作次数。
2.对数据库操作的方法放在子线程中,每次操作数据库以后手动让线程休眠。这是由于监控cpu占用时发现cpu使用率不高,但是wa值非常高,就是说CPU空闲且系统没有未完成的磁盘I/O请求的时间百分比非常高,我们项目只涉及到了数据库的写入ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值