由于刚换了阿里云的小内存服务器,nginx+php+mysql总是运行一段时间后自动停止。
先附上mysql的错误信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
140118
14
:
17
:
30
[
Warning
]
Using
unique
option
prefix
myisam
-
recover
instead
of
myisam
-
recover
-
options
is
deprecated
and
will
be
removed
in
a
future
release
.
Please
use
the
full
name
instead
.
140118
14
:
17
:
30
[
Note
]
Plugin
'FEDERATED'
is
disabled
.
140118
14
:
17
:
30
InnoDB
:
The
InnoDB
memory
heap
is
disabled
140118
14
:
17
:
30
InnoDB
:
Mutexes
and
rw_locks
use
GCC
atomic
builtins
140118
14
:
17
:
30
InnoDB
:
Compressed
tables
use
zlib
1.2.3.4
140118
14
:
17
:
30
InnoDB
:
Initializing
buffer
pool
,
size
=
128.0M
InnoDB
:
mmap
(
137363456
bytes
)
failed
;
errno
12
140118
14
:
17
:
30
InnoDB
:
Completed
initialization
of
buffer
pool
140118
14
:
17
:
30
InnoDB
:
Fatal
error
:
cannot
allocate
memory
for
the
buffer
pool
140118
14
:
17
:
30
[
ERROR
]
Plugin
'InnoDB'
init
function
returned
error
.
140118
14
:
17
:
30
[
ERROR
]
Plugin
'InnoDB'
registration
as
a
STORAGE
ENGINE
failed
.
140118
14
:
17
:
30
[
ERROR
]
Unknown
/
unsupported
storage
engine
:
InnoDB
140118
14
:
17
:
30
[
ERROR
]
Aborting
140118
14
:
17
:
30
[
Note
]
/
usr
/
sbin
/
mysqld
:
Shutdown
complete
|
查看日志主要问题出在内存不足。
解决方法:
1、如果不需要mysql的innodb表建议关闭
1
2
|
default
-
storage
-
engine
=
MYISAM
#默认数据库引擎改为MYISAM
loose
-
skip
-
innodb
#关闭Innodb支持
|
如果需要用到innodb建议在my.cnf中添加配置innodb_buffer_pool_size=64M,mysql默认大小为128M,根据自己的实际情况修改。
2、为了节约内存nginx也做了相关配置。一个CPU的话单进程,265个线程即可。
1
2
|
worker_processes
1
;
worker_connections
256
;
|
3、减少php-fpm的资源占用,根据自己的实际情况修改
1
2
3
4
5
6
7
8
9
|
pm
=
dynamic
如何控制子进程,选项有
static和
dynamic。
如果选择
static,则由
pm
.
max_children指定固定的子进程数。
如果选择
dynamic,则由下开参数决定:
pm
.
max_children
,子进程最大数
pm
.
start_servers
,启动时的进程数
pm
.
min_spare_servers
,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm
.
max_spare_servers
,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
对于专用服务器,
pm可以设置为
static。
|
欢迎转载,转载请注明来源:关于阿里云小内存服务器mysql运行一段时间后自动停止解决方法
本文链接地址: http://www.zzsck.org/program/mysql/5477.html