由于刚换了阿里云的小内存服务器,nginx+php+mysql总是运行一段时间后自动停止。
先附上mysql的错误信息:
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表建议关闭
default - storage - engine
=
MYISAM
#默认数据库引擎改为MYISAM
loose - skip - innodb
#关闭Innodb支持
如果需要用到innodb建议在my.cnf中添加配置innodb_buffer_pool_size=64M,mysql默认大小为128M,根据自己的实际情况修改。
2、为了节约内存nginx也做了相关配置。一个CPU的话单进程,265个线程即可。
worker_processes 1 ;
worker_connections 256 ;
3、减少php-fpm的资源占用,根据自己的实际情况修改
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