【openstack排坑指南】 “too many open files” Linux系统文件句柄优化

简介: 【openstack排坑指南】 “too many open files” Linux系统文件句柄优化

一、前言

openstack中,不知道各位有没有遇到这样的情况,首先我们openstack平台是完整可用的,在我们平台使用过很长一段时间或平台使用的用户越来越多,文件句柄,会随着进程数也不断增加,其实Linux是有文件句柄限制的,而且Linux默认一般都是1024。在生产环境中很容易到达这个值,因此这里就会成为系统的瓶颈。

在Linux系统的生产环境中,会经常遇到“too many open files”的报错。这个报错顾名思义是打开过多文件数。不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。

这时我们又没有做任何系统优化,我们平台就报错了,准确的说是我们系统遇到了瓶颈,需要做出优化,修改句柄数。


二、排坑

1、报错信息

首先是dashboard界面登录报错,如图所示:

因为Dashboard是一个DJango的web应用程序,默认运行在Apache服务器上,相应的运行日志也都记录在Apache的日志中,可以在/var/log/httpd/中查看,查看日志报错如下:

这里可以看到出现IOError: [Errno 24] Too many open files 错误,修改句柄数解决。

$ cat /var/log/httpd/error_log
[Wed Jun 22 02:19:09.165363 2022] [:error] [pid 26490] IOError: [Errno 24] Too many open files #[Errno 24] 打开的文件太多
[Wed Jun 22 02:19:30.718258 2022] [:error] [pid 26490] INFO openstack_auth.plugin.base Attempted scope to domain demo failed, will attemptto scope to another domain.
[Wed Jun 22 02:19:30.809589 2022] [:error] [pid 26490] ERROR django.request Internal Server Error: /dashboard/auth/login/


2、解决方法

查看当前系统默认的文件句柄数量。

[root@controller ~]# ulimit -n
1024

修改句柄数,在limits.conf最后添加下列内容。

[root@controller-1 ~]# cat /etc/security/limits.conf
....
*                soft    nofile          65535
*                hard    nofile          65535

重新登录后句柄生效。

[root@controller ~]# ulimit -n
65535

重启openstack服务及http服务,最后再次访问dashboard界面。

[root@controller-1 ~]# openstack-service restart && systemctl restart httpd


我是无名小歌,欢迎加入云社区

(⊙o⊙),我们下期再见!!!


目录
相关文章
|
1月前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
74 24
Linux系统之whereis命令的基本使用
|
26天前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
75 34
|
15天前
|
缓存 NoSQL Linux
Linux系统内存使用优化技巧
交换空间(Swap)的优化 禁用 Swap sudo swapoff -a 作用:这个命令会禁用系统中所有的 Swap 空间。swapoff 命令用于关闭 Swap 空间,-a 参数表示关闭 /etc/fstab 文件中配置的所有 Swap 空间。 使用场景:在高性能应用场景下,比如数据库服务器或高性能计算服务器,禁用 Swap 可以减少磁盘 I/O,提高系统性能。
33 3
|
3月前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
300 78
|
2月前
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
159 23
|
3月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
103 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
4月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
126 56
|
3月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
135 13
|
4月前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
118 17
|
3月前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####