更新时间:2021-08-26 GMT+08:00
分享

Internal Server Error, HTTP 500

问题现象

命令错误输出:

HttpException: 500: Server Error for url: http://controller:9696/v2.0/networks, Request Failed: internal server error while processing your request.

日志文件“/var/log/neutron/server.log”显示的错误为:

oslo_messaging.rpc.server OperationalError: (pymysql.err.OperationalError) (1040, u'Too many connect

错误截图如下

问题原因

OpenStack一直处于调度中,数据库连接出现“Too many connections”说明,数据库最大连接数太小,已达最大连接数。

处理步骤

  1. 修改MariaDB配置文件。

    1
    vim /etc/my.cnf.d/openstack.cnf
    

    设置max_connections = 4096

  2. 修改系统最大文件打开数。

    1. 编辑文件。
      1
      vim /etc/security/limits.conf
      
    2. 添加
      1
      2
      * soft nofile 65536
      * hard nofile 65536
      

    3. 编辑文件“/etc/pam.d/login”并添加
      session required /lib/security/pam_limits.so

      这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制)。

      而pam_limits.so模块就会从“/etc/security/limits.conf”文件中读取配置来设置这些限制值。

  3. 使用root执行命令

    1
    ulimit -SHn 65536
    

  4. 设置系统最大值。

    1
    vim /etc/sysctl.conf
    
    1. 添加
      # max open files
      fs.file-max = 65536

    2. 生效。
      1
      sysctl -p
      

  5. 修改数据库参数。

    1. 更改 MySQL 在 Linux 的最大文件描述符限制,编辑“/usr/lib/systemd/system/mariadb.service”文件,在[Service]下添加:
      LimitNOFILE=65535
      LimitNPROC=65535
    2. 保存后,执行下面命令,使配置生效。
      1
      2
      systemctl daemon-reload
      systemctl restart  mariadb.service
      
    3. 还需要修改数据库的最大连接数。
      • 查看MySQL最大连接。
        1
        mysql> show variables like 'max_connections';
        
      • 查看当前服务器正在使用的连接数。
        1
        mysql> show global status like 'Max_used_connections';
        

  6. 重启OpenStack服务,需要每个服务都重启一遍,可以编写脚本进行重启所有服务。

    1. 重启neutron。
      1
      systemctl restart neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
      
    2. 重启nova。
      1
      systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
      
    3. 重启glance。
      1
      systemctl restart openstack-glance-api.service openstack-glance-registry.service
      
    4. 重启cinder。
      1
      systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
      

分享:

    相关文档

    相关产品

关闭导读