我们使用FreeRADIUS和MySQL数据库来validation用户身份。 我们遇到了MySQL数据库很慢的问题,导致最大的线程数量达到。 与此相关的问题是,当服务器由于没有线程可用而无法回答请求时,它将访问拒绝的响应发送给客户端。
我们的设备caching客户端连接,并定期检查服务器,看看他们是否应该仍然被允许或删除它们。 该设备的devise是,如果没有来自服务器的响应,并且客户端连接,它将保持连接。 问题是,当radius服务器处于其最大线程时,其默认答案是发送访问拒绝(通过数据包捕获进行validation),但是我们希望将默认行为更改为忽略请求(保持客户端连接) 。
我们现在已经解决了MySQL数据库的问题,但是我想将Access-Reject的默认设置改为忽略客户端的altogeather。 我已经做了研究,但没能find问题的答案。
提前致谢。
检查你的MySQL服务器是否回答足够快,检查服务器负载,内存使用情况,磁盘访问(top,free,vmstat,iostat)。
你的用户表中有多less行? 哪种types的存储(MyISAM,InnoDB)?
您可以调整MySQL服务器以closures未使用的连接:
# /etc/my.cnf ... # close unused connections after timeout set-variable = wait_timeout=300 # keep 50 threads in cache set-variable = thread_cache_size=50