比特网
mysql_error:启动线程时出错:资源暂时不可用
Sql代码
121031 18:53:17 InnoDB: 无法打开第一个数据文件
InnoDB:打开 ./ibdata1 时出错
121031 18:53:17 InnoDB:文件操作中操作系统错误编号 11。
InnoDB:错误号 11 表示“资源暂时不可用”。
InnoDB:一些操作系统错误号在
InnoDB 中描述:http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes。 html
121031 18:53:17 InnoDB:无法打开或创建数据文件。
121031 18:53:17 InnoDB:如果您尝试添加新的数据文件,但在这里失败了,
121031 18:53:17 InnoDB:您现在应该在 my.cnf 中编辑 innodb_data_file_path 。 cnf 返回
121031 18:53:17 InnoDB:恢复原样,并删除 InnoDB 创建的新 ibdata 文件
121031 18:53:17 InnoDB:在此失败的尝试中。 InnoDB 只写入了那些充满
121031 18:53:17 InnoDB: 零的文件,但尚未以任何方式使用它们。但要小心:不要
121031 18:53:17 InnoDB:删除包含您宝贵数据的旧数据文件!
121031 18:53:17 [错误] 插件“InnoDB”初始化函数返回错误。
121031 18:53:17 [错误] 插件“InnoDB”注册为存储引擎失败。
121031 18:53:17 [错误] 未知/不受支持的存储引擎:INNODB
121031 18:53:17 [错误] 正在中止
121031 18:53:17 [注意] /usr/local/mysql/bin/mysqld:关闭完成
121031 18:53:17 mysqld_safe mysqld 来自 pid 文件 /data/mysql/ mysql_3301/mysql_3301.pid 结束
121031 18:54:29 mysqld_safe 使用 /data/mysql/mysql_3301 中的数据库启动 mysqld 守护进程
121031 18:54:29 [警告] 语法 '- -log-slow-queries' 已弃用,并将在未来版本中删除。请改用“--slow-
query-log”/“--slow-query-log-file”。
121031 18:54:29 InnoDB:InnoDB 内存堆已禁用
121031 18:54:29 InnoDB:互斥体和 rw_locks 使用 GCC 原子内置函数
121031 18: 54:29 InnoDB:压缩表使用 zlib 1.2.3
121031 18:54:30 InnoDB:正在初始化缓冲池,大小 = 2.9G
121031 18:54:30 InnoDB:已完成初始化缓冲池
InnoDB:无法锁定 ./ibdata1,错误:11
InnoDB:检查您是否已经有另一个 mysqld 进程
InnoDB:使用相同的进程InnoDB 数据或日志文件。
121031 18:54:30 InnoDB:重试锁定第一个数据文件
InnoDB:无法锁定 ./ibdata1,错误:11 InnoDB:检查您是否还没有另一个 mysqld 进程InnoDB:使用相同的 InnoDB 数据或日志文件。 121031 18:54:30 InnoDB:重试锁定第一个数据文件InnoDB:无法锁定 ./ibdata1,错误:11
InnoDB:检查您是否还没有另一个 mysqld 进程
InnoDB:使用相同的 InnoDB 数据或日志文件。
InnoDB:无法锁定 ./ibdata1,错误:11
InnoDB:检查您是否还没有另一个 mysqld 进程
InnoDB:使用相同的 InnoDB 数据或日志文件。
InnoDB:无法锁定./ibdata1,错误:11
Sql代码
InnoDB:错误号 11 表示“资源暂时不可用”。
启动线程时出错:资源暂时不可用
经过深入查询,排除了内存、句柄数等问题。 并且切换至root用户打开大量线程时没有问题。尝试调整ulimit各项参数,最后发现是“最大用户进程”参数有问题,通过用户root调整大小至12000,线程数也随着增加。
Java代码
root@blog:/home/badqiu# ulimit -a
核心文件大小 (块,-c)0
数据段大小 (千字节,-d)无限制
调度优先级 (-e)0
文件大小 (块,-f)无限制
待处理信号 (- i) 143360
最大锁定内存 (kbytes, -l) 32
最大内存大小 (kbytes, -m) 无限制
打开文件 (-n) 2048
管道大小 (512 字节,-p)8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2046
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
在linux系统内生效。
vi /etc/security/limits.conf
Java代码
* soft nproc 12000
* hard nproc 12000
nproc就是"max user processes",完整描述是: nproc - max number of processes
参数含义:
单个用户可以启动的线程数,因为进程也会启动一个线程,所以也间接对进程数有限制。
注意:
该参数只对普通用户有用,root用户不在此限制。 所以用root用户可以启动几万个线程,无法重现这个问题.
bitsCN.com