can't create a new thread错误

ikscher 2010-07-22 12:43:30
高手指教:


最近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

请问如何解决此问题

没有多少分,我全部奉上
...全文
344 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
amani11 2010-07-22
  • 打赏
  • 举报
回复
查看下innodb_thread_sleep_delay 多少?

默认的好像是10000,如果是,改小些innodb_thread_sleep_delay = 60试试
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 vn700 的回复:]
可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32
2G ->16
1G -> 8
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?
[/Quote]

非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ikscher 的回复:]
引用 9 楼 dingsongtao 的回复:
innodb_thread_sleep_delay=40
wait_timeout=100

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


谢谢,看过的
[/Quote]

非常感谢,我的服务器内存3.5G,不过同时安装了sqlserver
CodeBus 2010-07-22
  • 打赏
  • 举报
回复
可能是没有申请到内存。
thread_cache_size是不是太大了阿? 缓存的线程数。
建议值
内存 -> thread_cache_size
>3G -> 64
3G -> 32
2G ->16
1G -> 8
key_buffer_size 好像也有点大 。。
你的服务器多大的内存阿?
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dingsongtao 的回复:]
innodb_thread_sleep_delay=40
wait_timeout=100

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

谢谢,看过的
Dleno 2010-07-22
  • 打赏
  • 举报
回复
innodb_thread_sleep_delay=40
wait_timeout=100

然后再看下:
http://blog.sina.com.cn/s/blog_5d568fff0100bf0u.html
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dingsongtao 的回复:]
max_connections=446//默认好象是446

把它设大些呢??
[/Quote]
这个也设置过了,不行
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vn700 的回复:]
1、MySQL 线程开得太多。

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

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

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

google出来的。。
[/Quote]

这个我改过,改小了150,然后报错说是超过此连接数
改大了,就是报错 can't create a new thread ,...
Dleno 2010-07-22
  • 打赏
  • 举报
回复
max_connections=446//默认好象是446

把它设大些呢??
CodeBus 2010-07-22
  • 打赏
  • 举报
回复
1、MySQL 线程开得太多。

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

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

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

google出来的。。
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amani11 的回复:]
查看下innodb_thread_sleep_delay 多少?

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

没有长连接,用的是discuz的,配置文件pconnect=0的,长连接关闭了,没有长连接
ikscher 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 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服务器解决问题(不重启要过会访问页面也恢复正常)


我查……
[/Quote]

我用的是myisam表,innodb_thread_sleep_delay我试过,不行
xuzuning 2010-07-22
  • 打赏
  • 举报
回复
google说:
不能创建一个新线程(errno的12):如果你不缴费了记忆....

你使用了长连接吧?

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧