![FreeRADIUS 默认答案](https://linux22.com/image/518250/FreeRADIUS%20%E9%BB%98%E8%AE%A4%E7%AD%94%E6%A1%88.png)
我们正在使用 FreeRADIUS 和 MySQL 数据库对用户进行身份验证。我们遇到了一个问题,即 MySQL 数据库运行缓慢,导致线程数达到最大限度。问题是,当服务器由于没有可用线程而无法响应请求时,它会向客户端发送访问拒绝的响应。
我们的设备会缓存客户端连接,并定期检查服务器是否仍应允许或删除它们。设备的设计是,如果服务器没有响应并且客户端已连接,它将保持连接状态。问题是,当 radius 服务器达到最大线程数时,其默认答案是发送访问拒绝(通过数据包捕获验证),但是我们希望将默认行为更改为忽略请求(保持客户端连接)。
目前我们已经修复了 MySQL 数据库问题,但我想将默认设置从“访问-拒绝”更改为完全忽略客户端。我做了研究,但找不到问题的答案。
提前致谢。
答案1
检查您的 MySQL 服务器响应是否足够快,检查服务器负载、内存使用情况、磁盘访问情况(top、free、vmstat、iostat)。
您的用户表中有多少行?哪种存储类型(MyISAM,InnoDB)?
您可以调整 MySQL 服务器以关闭未使用的连接:
# /etc/my.cnf
...
# close unused connections after timeout
set-variable = wait_timeout=300
# keep 50 threads in cache
set-variable = thread_cache_size=50