`

(转)redhat5 和redhat6 root用户不同的ulimits

 
阅读更多
http://dbahacker.com/linux/redhat5-%E5%92%8Credhat6-root%E7%94%A8%E6%88%B7%E4%B8%8D%E5%90%8C%E7%9A%84ulimits

以前一直都是用redhat5,redhat6也处于测试阶段,当然也遇到了很多奇奇怪怪的问题,比如之前写的一篇博客,当时候是用root启动了mysqld_unsafe,在mysql的QPS到1W以上后,会出现ERROR 1135 (HY000): Can’t create a new thread (errno 11); 当时候的解决办法是用mysql用户来启动就解决了问题。但因为在系统重启后,如果用sudo  -u mysql来启动的话,脚本会被卡主。

这个问题今天得到了一个稍微深入一点的结论。

首先我们看看这个错误

ERROR 1135 (HY000): Can’t create a new thread (errno 11);

if you are not out of available memory,

you can consult the manual for a possible OS-dependent bug

google类似Can’t create a new thread的错误后,得到的结论是文件描述符不够用,检查了vim /etc/security/limits.conf   的设置,是正常的

vim /etc/security/limits.conf

得到的结果是

root    soft    nofile  65535

root    hard    nofile  65535

admin   soft    nofile  65535

admin   hard    nofile  65535

# End of file

mysql   soft    nproc   65536

mysql   hard    nproc   65536

mysql   soft    nofile  65535

mysql   hard    nofile  65535

但观察了sudo -u root bash -c " ulimit -a " 后,得到 max user processes   (-u) 1024
core file size          (blocks, -c) 0


data seg size           (kbytes, -d) unlimited


scheduling priority             (-e) 0


file size               (blocks, -f) unlimited


pending signals                 (-i) 385957


max locked memory       (kbytes, -l) 64


max memory size         (kbytes, -m) unlimited


open files                      (-n) 65535


pipe size            (512 bytes, -p) 8


POSIX message queues     (bytes, -q) 819200


real-time priority              (-r) 0


stack size              (kbytes, -s) 10240


cpu time               (seconds, -t) unlimited


max user processes              (-u) 1024


virtual memory          (kbytes, -v) unlimited


file locks                      (-x) unlimited

max user processes              (-u) 1024 和 sudo -u root bash -c " ulimit -u "  一样,都是得到1024的结果
sudo -u root bash -c " ulimit -u "

1024

而在redhat5里面,只要在/etc/security/limits.conf  设置了root    soft    nofile  65535 和root    hard    nofile  65535,对应的uilmit  -u 就会是65535.

和@维西v @tb天羽 搞了几个小时,依然没法成功修改root用户的 max user processes到65535 。后来发现了一篇文章 Know your limits (ulimits)  ,提及到redhat6新增了/etc/security/limits.d/90-nproc.conf,里面的内容是

# Default limit for number of user's processes to prevent


# accidental fork bombs.


# See rhbz #432903 for reasoning.


*          soft    nproc     1024

redhat6下面,root用户使用ulimit -u没法修改

* soft nproc 1024的意思是任何用户的最大max user processes为1024个,其他用户可以通过ulimit -u来修改 ,但root用户则修改不成功,我们这里看一个例子

[yingyuan.ydh@my031226 ~]$ cat /etc/security/limits.d/90-nproc.conf


# Default limit for number of user's processes to prevent


# accidental fork bombs.


# See rhbz #432903 for reasoning.



*          soft    nproc     1024


[yingyuan.ydh@my031226 ~]$ ulimit -u


1024


[yingyuan.ydh@my031226 ~]$ ulimit -u 65535


[yingyuan.ydh@my031226 ~]$ ulimit -u


65535


[yingyuan.ydh@my031226 ~]$ sudo -uroot bash -c " ulimit -u 65535"


[yingyuan.ydh@my031226 ~]$ sudo -uroot bash -c " ulimit -u "


1024


很明显,在redhat6的/etc/security/limits.d/90-nproc.conf限制下,个人用户可以修改ulimit-u,但root用户没法修改。 解下来,我们把etc/security/limits.d/90-nproc.conf改掉,会看到root的ulimit -u 可以修改成功。

[yingyuan.ydh@my031226 ~]$ sudo -uroot bash -c " ulimit -u 65535"


[yingyuan.ydh@my031226 ~]$ sudo -uroot bash -c " ulimit -u "


65535


[yingyuan.ydh@my031226 ~]$ cat /etc/security/limits.d/90-nproc.conf


# Default limit for number of user's processes to prevent


# accidental fork bombs.


# See rhbz #432903 for reasoning.



*          soft    nproc     65535

结果

在成功修改了root用户的max user processes后,继续使用root用户启动mysqld_safe脚本,稳定运行了一个下午,一切正常。
分享到:
评论

相关推荐

    Redhat_Linux修改root密码

    通过上述步骤,我们不仅学会了如何在Redhat Linux中修改root密码,还深入了解了Linux系统的启动过程和单用户模式的工作原理。这种能力对于处理紧急情况、系统故障恢复以及增强系统安全性都极为关键。然而,修改root...

    redhat以root身份运行命令.docx

    为了精细化管理系统,需要了解 Root 用户的权限和使用方法。本文将详细解释 Root 用户的概念、SU 命令、Sudo 命令、/etc/sudoers 文件的作用和配置方法。 一、Root 用户概述 在 Linux 系统中,Root 用户是最高权限...

    redhat linux单用户更改root密码.doc

    根据提供的文档信息,本文将重点围绕Red Hat Linux系统下的单用户模式如何更改root密码,并延伸至DNS服务配置的相关知识点进行详细阐述。 ### Red Hat Linux单用户模式更改root密码 在Red Hat Linux系统中,有时...

    redhat7u4 裸机离线安装 gcc(含全部依赖包和安装说明)

    在这个场景下,我们要讨论的是如何在没有网络连接的情况下,在Red Hat 7.4(简称redhat7u4)上离线安装GCC编译器,包括所有必要的依赖包。 GCC(GNU Compiler Collection)是一套开源的编译器集合,用于将源代码...

    CentOS及Redhat破解root密码

    CentOS及Redhat破解root密码,做了简单的整理,方便大家阅读,希望对你有帮助。

    VMWare虚拟机+Redhat linux 5安装vmware-tools

    _VMWare虚拟机+Redhat Linux 5安装vmware-tools_ VMWare虚拟机是一种popular的虚拟机软件,可以在物理机器上运行多个虚拟机,每个虚拟机可以运行不同的操作系统。Redhat Linux 5是Redhat公司推出的一个Linux操作...

    redhat6开启telnet服务

    本文详细介绍了如何在 Red Hat 6 中开启 Telnet 服务,包括安装所需的软件包、配置服务参数、调整防火墙策略以及允许 Root 用户通过 Telnet 登录。这些步骤有助于实现远程访问需求,同时也需要注意安全问题,确保...

    RedHat Linux RHEL6配置本地YUM源

    ### RedHat Linux RHEL6配置本地YUM源详解 #### YUM简介 YUM(Yellowdog Updater Modified)是一款在Linux环境下使用的包管理工具。它最初由Yellow Dog Linux的开发者们设计并实现,名为yup(Yellowdog Updater)。...

    Linux_Redhat5下手工安装配置PHP+Mysql+Apche--LAMP环境搭建(转)

    1. 已安装Redhat5操作系统。 2. 具备基本的Linux命令行操作技能。 3. 准备好Apache、MySQL和PHP的安装包。 #### 二、安装Apache Web服务器 1. **下载Apache安装包**:可以前往Apache官网下载适合Redhat5的版本。 2...

    redhat6配置VNC

    ### Redhat 6 配置 VNC 服务详解 #### 一、引言 VNC(Virtual Network Computing)是一种允许用户远程控制计算机的应用程序。它通过网络将图形化桌面环境从一台计算机传输到另一台计算机上,使得用户可以在远程位置...

    redhat忘记root密码解决方法.docx

    如果您忘记了Red Hat系统的Root密码,不要担心,本文将为您提供两种解决方法:单例模式(Single User Mode)和救援模式。 单例模式(Single User Mode) 单例模式是一种特殊的启动模式,可以让您在不需要Root密码...

    RedHat 安装 oracle10g

    - 创建 `oracle` 用户,属于 `oinstall` 组,并且是 `dba` 组的成员:`[root@redhat5 Server]#/usr/sbin/useradd -g oinstall -G dba oracle` 3. **设置密码**: - 修改 `oracle` 用户的密码:`[root@redhat5 ...

    详细过程:RedHat Linux5开启VNC Server远程桌面

    通过上述步骤,我们可以在 RedHat Linux 5 上成功安装和配置 VNC Server,实现远程桌面的功能。这对于日常管理和维护 Linux 服务器非常有帮助。需要注意的是,为了保证系统的安全性,建议定期更换 VNC Server 的密码...

    redhat6安装telnet

    ### Redhat 6 安装 Telnet 详细指南 #### 一、Telnet 基础知识 **Telnet** 是一种基于TCP/IP协议的应用层协议,用于远程访问其他计算机系统。它允许用户通过网络连接到远程主机并执行命令,就像在本地终端上一样。...

    redhat5安装tftp

    4.使用超级用户身份运行setup命令,在系统服务理选上tftp服务 [*]tftp 5.启动tftp服务器 [root]# service xinetd restart 看到启动[OK]就可以了 可以在tftpboot中放一些文件,然后使用tftp客户端命令连接服务器,...

    linux系统安装redhat5

    6. 进行网络配置,设置时区,并设置根用户(root)的口令。 7. 选择要安装的软件包,例如服务器、工作站、开发工具等。 8. 安装结束后,重新引导系统。 在安装结束后,需要设置语言支持、系统软件包检查以及优化...

Global site tag (gtag.js) - Google Analytics