OpenStack运行变慢处理

本文介绍了OpenStack运行变慢的原因及解决方案。通过分析发现keystone数据库中的token表过大是导致问题的关键,提供了包括直接清空token表和使用外部缓存如Memcached或Redis等方法。

问题


OpenStack运行一段时间后变慢了。登陆horizon变的很慢,与现有硬件环境差距太大,效果甚不理想。

首先,,查看了下apache2日志没什么报错,感觉是认证的问题。执行了keystone user-list 好几秒才返回结果,问题基本定位是keystone问题。

然后,查看mysql数据库,其cpu利用率一直非常高,进入数据库show processlist看了下发现下面语句执行很长时间执行不完:

> use keystone;
> select id,expires,extra,valid from token;

肯定是token表太大或者没有索引造成,用explain看了下这条sql 一百多万行全文扫描,看了下表内容都是临时认证的token信息,没什么大用直接清空了,然后执行keystone命令很快,清空浏览器缓存后登陆飞快。

关于show processlist具体信息,请参考这里:
http://www.cnblogs.com/JulyZhang/archive/2011/01/28/1947165.html

上面只是暂时处理方法,线上用我觉得最好加索引,定期备份以前的数据到另外一个表。


方法建议

1、采用清除token表的方式解决问题
2、Memcached存放Token(貌似我觉得Redis更好)
详情,请参考该文:http://prajnagarden.com/openstack/2013/12/17/keystone-on-the-way/

openstack命令以及dashboard操作非常慢的原因

1、可能服务器负载太高。

2、可能是keystone数据库里的token表太久未清理,表太大。删除较早的token:

delete from token where not DATE_SUB(CURDATE(),INTERVAL 2 DAY)<=expires;(2天前的token)

有时确实token表太大执行这个语句会超时,可以直接删除token表的全部内容:

truncate table token

小结


注意:如果线上用的不要直接清空token,这样不清浏览器缓存有可能会导致登陆不了。
补充:看了下原来nova和quantum的大多数功能都需要验证token,当token数量太多时,导致在数据库查询token时要花费很多时间,而且有些功能牵涉到多个组件,就要多次查询token。

### 问题分析 在 OpenStack 环境中运行 pfSense 可能会遇到多种异常问题。pfSense 是一个基于 FreeBSD 的防火墙/路由器软件,其运行依赖于网络配置、虚拟化环境的支持以及资源分配等多方面因素。以下将详细分析可能的原因及解决方法。 --- ### 原因及解决方法 #### 1. 网络配置问题 pfSense 对网络配置要求较高,如果 OpenStack 的网络设置不符合 pfSense 的需求,可能会导致异常。 - **原因**:OpenStack 的网络模型(如 Flat、VLAN、GRE、VXLAN)与 pfSense 的网络接口绑定不匹配[^1]。 - **解决方法**: - 确保为 pfSense 虚拟机分配了至少两个网络接口(WAN 和 LAN)。 - 在 OpenStack 中创建独立的网络并分配给 pfSense 的 WAN 和 LAN 接口。 - 检查 pfSense 的网络接口是否正确配置了 IP 地址和网关。 ```bash ifconfig em0 inet <WAN_IP> netmask <WAN_Netmask> ifconfig em1 inet <LAN_IP> netmask <LAN_Netmask> ``` #### 2. 虚拟化兼容性问题 pfSense 基于 FreeBSD,而 OpenStack 默认支持 Linux 虚拟机镜像,可能存在兼容性问题。 - **原因**:pfSense 镜像未优化或未正确导入到 OpenStack 中[^1]。 - **解决方法**: - 使用官方提供的 pfSense 镜像,并确保其格式为 qcow2 或 raw。 - 在导入镜像时,选择正确的架构类型(如 x86_64)。 - 如果自定义镜像,请确保包含必要的驱动程序以支持 KVM 虚拟化。 ```bash glance image-create --name "pfsense" --disk-format qcow2 --container-format bare --file /path/to/pfsense.qcow2 ``` #### 3. 资源不足问题 pfSense 需要足够的计算资源才能正常运行,资源不足可能导致异常。 - **原因**:CPU、内存或磁盘空间不足。 - **解决方法**: - 分配至少 2 vCPU、2 GB 内存和 8 GB 磁盘空间给 pfSense 虚拟机。 - 检查 OpenStack 的计算节点是否有足够的资源。 - 如果资源不足,考虑扩展计算节点或调整虚拟机规格。 ```bash openstack server resize --flavor <new_flavor_id> <server_name> ``` #### 4. 安全组规则限制 OpenStack 的安全组规则可能阻止 pfSense 的正常通信。 - **原因**:安全组规则未开放必要的端口(如 HTTP、HTTPS、SSH)[^1]。 - **解决方法**: - 创建或修改安全组规则,允许 pfSense 所需的端口流量。 - 示例:允许 HTTP 和 HTTPS 流量。 ```bash openstack security group rule create --protocol tcp --dst-port 80:80 <security_group_id> openstack security group rule create --protocol tcp --dst-port 443:443 <security_group_id> ``` #### 5. 数据库连接问题 如果 pfSense 配置依赖于外部数据库,而数据库连接异常也可能导致问题。 - **原因**:数据库的最大连接数不足或连接超时[^1]。 - **解决方法**: - 修改 MariaDB 的配置文件,增加最大连接数。 - 确保数据库服务正常运行且网络可达。 ```bash echo "max_connections=1500" >> /etc/my.cnf.d/mariadb_openstack.cnf systemctl restart mariadb ``` --- ### 总结 在 OpenStack运行 pfSense 时,常见的异常问题包括网络配置错误、虚拟化兼容性问题、资源不足、安全组规则限制以及数据库连接问题。通过逐一排查上述原因并采取相应的解决措施,可以有效解决 pfSense 的运行异常。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值