我正在运行一个聊天室()与mysql+php。我有一个专用的服务器来运行这个脚本,因为它可以消耗大量的资源。它对100个并发用户都很好。然而,最近有一个用户威胁我们要杀死这个聊天室,他正在成功地这样做:
只有40个用户,聊天室已经死了。传递一条信息需要10-20秒。MySql消耗了300%的CPU。然而,对于100个用户(当它没有受到攻击时),聊天室只使用200-300%的CPU。我检查了下面的内容,以确保他没有使用/DDoSing我们的服务器。
1 - Limited 3 requests per seconds.
2 - Analyzed access.log to see any wei
在我的网站上,我已经建立了一个聊天室,支持多个房间。当用户加入这个房间时,一个会话会被放置到数据库中,这样如果他们试图再次在另一个浏览器窗口中加入这个房间,他们就会被锁在外面。
它是这样工作的
1. Join the chatroom page
2. Connect to chatroom #main
If the user has a session in the database for #main
--- Block user from joining
else
--- Load chatroom
当聊天室关闭客户端或用户使用/quit命令终止那里的连接时,他们的所有会话都会被删除,这很