声明:
本博客欢迎转发,但请保留原作者信息!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!
【背景】
最近在内部的其中一个测试环境上,频繁出现命令行界面上Neutron执行命令卡死,究其原因,发现是因为数据库连接池被占满,导致新的请求引发数据库异常,业务不可用。因为Nova需要与Neutron交互,因此Nova也会出问题。
导致连接池被占满的因素有以下几种:
* Neutron接收的并发请求太多(包含直接调用Neutron请求,通过Nova间接调用Neutron请求,Ceilometer调用请求,Neutron内部agent调用请求)
* 数据库连接池数目有限
* port的数目过多,而port租约时间间隔太小,agent上报时间间隔太小,导致Neutron内部agent调用请求过多
* 当前Neutron并没有像其他组件那样可以配置多个worker
【建议考虑的因素】
1、环境可承载的虚拟机个数上限
2、根据虚拟机个数确定网卡数目上限
3、平均并发请求数目(包括:Nova、Ceilometer、第三方发送来的请求,以及Neutron内部agent的请求)
4、网卡的租约时间间隔,agent report的时间间隔
5、是否需要dhcp-agent multi-host部署
6、neutron-server进程是否需要多实例部署
7、资源的配额限制
欢迎讨论!
本文探讨了OpenStack Neutron在内部测试环境中遇到的性能问题,主要表现为命令行操作卡死,原因是数据库连接池耗尽,影响到Nova等组件的正常工作。解决方案涉及对资源配额的限制和优化。

1900

被折叠的 条评论
为什么被折叠?



