can't create a new thread错误

时间:2022-06-01 14:13:04
高手指教:


最近php(5.2.13)+mysql(5.0.45)+window2003服务器运行遇到一个错误:

can't create a new thread(errno 12):if you are not avaiable out of memory ....

间歇性的出现此问题,每次都是重启mysql服务器解决问题(不重启要过会访问页面也恢复正常)


我查看了mysql的内存占用,是在不断升高的

而且在 数据库服务器中 同时安装了mysql 和 sqlserver

我的my.ini 文件配置如下

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking


# 各种缓存大小

# 索引块缓存
key_buffer_size = 512M
max_allowed_packet = 1M

# 所有线程打开表的数量
table_cache = 1024

# 对排序缓存
sort_buffer_size = 1M

# net_buffer_length = 8K

# 读缓存
read_buffer_size = 1M

read_rnd_buffer_size = 2M

# 排序myisam索引分配的缓冲区
myisam_sort_buffer_size = 4M



join_buffer_size= 16M

wait_timeout = 120

# 可以复用的保存在缓存中的线程数量
thread_cache_size=120


# 查询缓冲
query_cache_size = 32M

#临时表大小
tmp_table_size= 64M

# 真实的并发处理数(cpu内核数)
thread_concurrency=4

请问如何解决此问题

没有多少分,我全部奉上

13 个解决方案

#1


查看下innodb_thread_sleep_delay  多少?

默认的好像是10000,如果是,改小些innodb_thread_sleep_delay = 60试试

#2


google说:
不能创建一个新线程(errno的12):如果你不缴费了记忆....

你使用了长连接吧?

#3


引用楼主 ikscher 的回复:
高手指教:


最近php(5.2.13)+mysql(5.0.45)+window2003服务器运行遇到一个错误:

can't create a new thread(errno 12):if you are not avaiable out of memory ....

间歇性的出现此问题,每次都是重启mysql服务器解决问题(不重启要过会访问页面也恢复正常)


我查……


我用的是myisam表,innodb_thread_sleep_delay我试过,不行

#4


引用 1 楼 amani11 的回复:
查看下innodb_thread_sleep_delay 多少?

默认的好像是10000,如果是,改小些innodb_thread_sleep_delay = 60试试


没有长连接,用的是discuz的,配置文件pconnect=0的,长连接关闭了,没有长连接

#5


1、MySQL 线程开得太多。

2、服务器系统内存溢出。

3、环境软件损坏或系统损坏。

进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。

google出来的。。

#6


max_connections=446//默认好象是446

把它设大些呢??

#7


引用 5 楼 vn700 的回复:
1、MySQL 线程开得太多。

2、服务器系统内存溢出。

3、环境软件损坏或系统损坏。

进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。

google出来的。。


这个我改过,改小了150,然后报错说是超过此连接数
改大了,就是报错 can't create a new thread ,...

#8


引用 6 楼 dingsongtao 的回复:
max_connections=446//默认好象是446

把它设大些呢??

这个也设置过了,不行

#9


innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html

#10


引用 9 楼 dingsongtao 的回复:
innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html


谢谢,看过的

#11


可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32 
2G ->16
1G -> 8 
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?

#12


引用 10 楼 ikscher 的回复:
引用 9 楼 dingsongtao 的回复:
innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html


谢谢,看过的


非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver

#13


引用 11 楼 vn700 的回复:
可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32 
2G ->16
1G -> 8 
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?


非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver

#1


查看下innodb_thread_sleep_delay  多少?

默认的好像是10000,如果是,改小些innodb_thread_sleep_delay = 60试试

#2


google说:
不能创建一个新线程(errno的12):如果你不缴费了记忆....

你使用了长连接吧?

#3


引用楼主 ikscher 的回复:
高手指教:


最近php(5.2.13)+mysql(5.0.45)+window2003服务器运行遇到一个错误:

can't create a new thread(errno 12):if you are not avaiable out of memory ....

间歇性的出现此问题,每次都是重启mysql服务器解决问题(不重启要过会访问页面也恢复正常)


我查……


我用的是myisam表,innodb_thread_sleep_delay我试过,不行

#4


引用 1 楼 amani11 的回复:
查看下innodb_thread_sleep_delay 多少?

默认的好像是10000,如果是,改小些innodb_thread_sleep_delay = 60试试


没有长连接,用的是discuz的,配置文件pconnect=0的,长连接关闭了,没有长连接

#5


1、MySQL 线程开得太多。

2、服务器系统内存溢出。

3、环境软件损坏或系统损坏。

进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。

google出来的。。

#6


max_connections=446//默认好象是446

把它设大些呢??

#7


引用 5 楼 vn700 的回复:
1、MySQL 线程开得太多。

2、服务器系统内存溢出。

3、环境软件损坏或系统损坏。

进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。

google出来的。。


这个我改过,改小了150,然后报错说是超过此连接数
改大了,就是报错 can't create a new thread ,...

#8


引用 6 楼 dingsongtao 的回复:
max_connections=446//默认好象是446

把它设大些呢??

这个也设置过了,不行

#9


innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html

#10


引用 9 楼 dingsongtao 的回复:
innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html


谢谢,看过的

#11


可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32 
2G ->16
1G -> 8 
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?

#12


引用 10 楼 ikscher 的回复:
引用 9 楼 dingsongtao 的回复:
innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html


谢谢,看过的


非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver

#13


引用 11 楼 vn700 的回复:
可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32 
2G ->16
1G -> 8 
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?


非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver