首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置ulimit和ubuntu 8.04

设置ulimit和ubuntu 8.04
EN

Server Fault用户
提问于 2009-12-11 00:22:25
回答 3查看 6.2K关注 0票数 0

我们有两台ubuntu 8.04服务器。对于数据库服务器,我将table_cache设置为1000,但是当重新启动mysql时,状态仅显示为257,打开的文件限制为1024。

我通过执行ulimit -n 8192,然后重新启动mysql来调整ulimit;这似乎可以完成这个操作,但是几个小时后,我做了-n,并看到它返回到1024。

有点担心。

我编辑了/etc/security/limits.conf s.conf并添加了

mysql soft nofile 8192

mysql hard nofile 8192

然后重新启动,没有改变。然后,我编辑并将mysql更改为*重新启动,没有更改,然后编辑并将其更改为一行。

* - nofile 8192

重新启动,没有改变。

cat /proc/sys/fs/file-max给我768730

sysctl fs.file-max给了我fs.file-max = 768730

我有点不知所措,不知道如何设置和保留ulimit值集,以便在mysql上适当地增加表缓存。

EN

回答 3

Server Fault用户

发布于 2009-12-11 01:13:12

编辑:为清晰性解释详细信息

我怀疑您检查了与mysql不同的用户的ulimit ;)

您不必在更改limits.conf之后重新启动。您必须在/etc/pam.d/中相应的PAM服务中打开该文件的使用。

grep pam_limits /etc/pam.d/*,有线索,在什么情况下将使用limits.conf

例如,limits.conf中的更改可以在作为sudo -u user bash调用的shell中看到,但在以sudo su - user的形式运行时却不能看到--这是因为在Ubuntu的默认设置中如下所示:

$ grep limits /etc/pam.d/*|grep su

/etc/pam.d/su:# session required pam_limits.so

/etc/pam.d/sudo:session required pam_limits.so

所以如果使用sudo su - mysql检查限制,那么就会出现混乱-- su没有打开限制。您可以通过查看/var/log/auth.log来检查哪个pam服务正在运行。

对于所有可能的mysql调用类型,修改pam.d/other或只修改pam.d/common-session应该是安全的。

票数 2
EN

Server Fault用户

发布于 2010-09-06 09:24:15

如果您不确定MySQL的当前限制,请使用您选择的方法(top、ps aux、pgrep等)检查mysqld的当前进程id。然后只需键入

sudo cat /proc/mysql_process_id_you_found/limits

如果它没有告诉您打开的文件是8192,那么您总是可以像有人建议的那样对init脚本进行黑客攻击。

票数 1
EN

Server Fault用户

发布于 2009-12-11 01:15:28

您是否将所需的会话pam_limits.so添加到/etc/pam.d/公共会话中?

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/93234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档