随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

EasyGBS磁盘读写压力过大导致调用接口一直pending的解决方式

在我们EasyGBS的演示平台中,为了节省流量,设定了定时掉线的功能,也就是在页面5分钟没有任何操作时,帐号就自动退出登录,跳转到登录页面。而非演示版本考虑到登入登出会给运维人员带来不便,则没有这个设定。但是有的客户反馈在用EasyGBS正式版的时候有时会突然卡住,并且过一会自动跳转到登录页面,整个页面非常的卡顿,调用接口一直都在pending。

我们检查系统软件都没有问题之后,发现这个问题是由于客户的磁盘读写压力太大导致的,windows可以在资源管理器里面看到:

Linux里面可以调用命令iostat -x 1 10去检查,可以从命令里面看到客户磁盘读写已经接近利用率,基本已经快满了。

因为我们的数据库默认是用sqlite的数据库,在进行通道查询这类操作时,比较消耗磁盘的读写能力,一旦利用率满了之后就会出现返回登录页面,调用接口一直pending的问题。

碰到这种情况一般两种解决方案,一种方案是更换硬盘,继续用sqlite的数据库,这个适用于接入数量比较少的。但是如果接入数量比较大,查询比较多的话就要换另一种方案,即替换成mysql数据库,要在服务器里面装一个mysql5.7的数据库(注意easygbs只支持mysql5.7版本的,其他版本的mysql不支持),然后配置新建的easygbs1数据库,然后在easygbs.ini文件里面配置mysql的连接。

完成以上操作之后再重启服务就可以正常使用了,只要在内存占用不高的前提下都可以很流畅的使用。

posted on   EasyGBS  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示