检测服务器过载以限制mysql查询
Detecting server overload to limit mysql queries
我正在编程c++服务,它每隔1秒在mysql服务器上使用LIMIT 1进行一次SELECT查询,然后进行计算,然后使INSERT和this永远循环。
我想检测服务器过载,以使SELECT具有更大的LIMIT,例如LIMIT 10和更大的inetrvals,例如每5秒左右。不确定我的解决方案是否会减轻服务器过载。
我的问题是如何检测这些过载,我不确定我所说的过载是什么意思:)它可以是任何东西,但我的应用程序是php(聊天)中的web应用程序,所以过载可以在Apache2端或mysql端检测到,或者检测有多少用户在时间间隔内进行了多少次输入(聊天消息)。我不知道:/
谢谢!
编辑:好吧,我用C++应用程序制作了一个套接字服务器,而且速度非常快。现在我正在与内存泄漏作斗争,但那是另一回事了。
因此,感谢@brianbeuning对我的问题提出的有益意见。
最好永远解决这个循环,这不是一个好主意。
如果那个循环真的是必须的,那么就使用一些缓存技术。
为了检测"过载"(我称之为MySQL CPU使用率高),请尝试调用操作系统支持的外部命令。
例如,如果在Linux上使用此命令,请使用ps命令。
编辑:
我现在意识到你正在编程聊天服务器。使用MySQL作为中间人不是一个好主意。尝试在不使用MySQL的情况下解决此问题,然后如果您需要保存聊天日志,偶尔将其保存到MySQL(例如,每隔10秒左右)。
我敢打赌,现在只有20个密集型用户会占用CPU。
尝试直接进行客户端到客户端的通信,而不需要服务器(仅使用服务器在两个客户端之间建立通信)。
另一种方法是缓冲应用程序中的数据,并使用各种连接池来管理负载。保留需要插入的数据的滚动缓冲区,并根据缓冲区的大小管理"限制"。
- MySQL c++ 连接器:使用 SetBlob() 在查询中设置多个 blob 数据的正确方法是什么?
- 如何使用C++检查 mysql 查询是否成功
- 在 MySQL 连接器C++ API 中使用一个函数调用执行多个查询的正确方法是什么?
- 如何正确编写 mysql 查询
- 如何在QT中进行MySQL查询
- Mysql 查询错误
- 使用 Qt 从 mysql 查询构造 2D 向量
- 我可以在mysql查询中调用一个函数吗
- MySQL C++查询访问违规
- 如何用c++和mysql发送动态的mysql查询
- c++ Mysql查询ascii格式
- c++中的动态mysql查询
- 如何在mysql查询后获得原始数据
- Mysql查询字符串在查询c++中不工作
- 如何使用本地变量作为MySQL查询的一部分(Qt c++)
- 使用c++在Mysql查询中插入JSON格式
- Mysql ++查询失败
- 检测服务器过载以限制mysql查询
- 向MySQL++查询添加字符串
- qt在不同线程中同时进行MySQL查询=崩溃