由于刚换了阿里云的小内存服务器,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
这篇文章还没有评论