求助Django的mysql数据库不定时挂掉,找不到原因

2013-11-20 23:07:49 +08:00
 zhenyi2697
大家好,小弟开发了一个基于Django+mysql+bootstrap的网站,网站运行过程中,每当访问量稍微多一点或者网站添加了内容,mysql就会挂掉,然后django会报一个如下的错误:(2002,Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock (111)'.

详见截图:https://dl.dropboxusercontent.com/u/38395876/Screen%20Shot%202013-10-18%20at%2010.50.46%20PM.png

如果此时我进入vps,发现mysqld的进程已经停止了。重启之后网站运行就又正常了。

我查过mysql的log (/var/log/mysql/error.log), 发现只有一个fatal error: cannot allocate memory for the buffer pool.

我的django项目里装了如下app:

grapplli,
robots,
south,
social_auth,
debug_toolbar,

另外,缓存系统用的是 memcached 和 一个第三方的应用 johnny-cache, 我怀疑是缓存系统和mysql数据库的交互过程中导致错误,然后mysql服务器就挂了,但是具体不知道是哪里出了问题。

我的django版本: 1.4
mysql: 5.5.32
python: 2.7.3
vps用的是digital ocean

不知道有没有人碰到过同样的问题。。。
3905 次点击
所在节点    Python
16 条回复
ericls
2013-11-20 23:22:09 +08:00
这个应该跟django
没关系吧
Archangel_SDY
2013-11-20 23:22:37 +08:00
内存不够?
ipconfiger
2013-11-20 23:24:33 +08:00
最大连接数满了,可能,我猜
ericls
2013-11-20 23:38:52 +08:00
@Archangel_SDY 对 应该是内存不够 可能也不是Mysql的问题 DO最低配置都有512M吧? 不知道楼主的访问量有多少?
c0878
2013-11-20 23:47:16 +08:00
mysql分配的buffer超过内存上限
ericls
2013-11-20 23:53:57 +08:00
@c0878 很有可能哦 试着将buffer调小一点 如果访问量不大的话 如果访问量大 那就换内存大点的服务器
zhenyi2697
2013-11-21 00:09:19 +08:00
@ericls
我的访问量很小的,每天也就几十PV,应该不会内存不够吧。我看了看DO的负载,发现mysql挂掉时disk和banwidth有一个峰值,cpu倒是正常。
参考截图:https://dl.dropboxusercontent.com/u/38395876/Screen%20Shot%202013-11-20%20at%205.07.32%20PM.png
zhenyi2697
2013-11-21 00:16:55 +08:00
@ericls
多谢, buffer 现在是默认值,128M, 我调小点儿试试,就知道什么时候又会挂。。。
zhenyi2697
2013-11-21 00:17:36 +08:00
@c0878
我刚看了看,buffer size是128M,内存应该有512M,不会超吧
VYSE
2013-11-21 01:25:03 +08:00
my.cnf里还有其他memory设置吧,加在一起不要超过内存总量80%
likuku
2013-11-21 09:21:01 +08:00
512M内存…my.cnf 直接用small模板那个。假若用innodb,则相关的还要调。
likexian
2013-11-21 09:29:54 +08:00
vps超卖严重,无法分配到内存

换vps是你唯一的出路
zhenyi2697
2013-11-21 18:09:32 +08:00
@VYSE 好的,谢谢
zhenyi2697
2013-11-21 18:10:31 +08:00
@likuku 我再改一改试试,或者,我想直接把缓存关了,我觉得就是因为缓存在某一时刻统一写入时,导致内存一下子上升,就支撑不了了。。。
zhenyi2697
2013-11-21 18:11:43 +08:00
@likexian
每天几十个PV都支撑不了啊。。。。升级vps会有用吗?
找不到这么便宜的vps了啊,个人项目,linode用不起。。。
likuku
2013-11-21 23:28:14 +08:00
这么小点内存,整个架构这么复杂…尽量简单点。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/89982

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX