las*_*weq 6 mysql mariadb performance
我有一个 PHP/Laravel/MariaDB 项目,数据库每天都在变大,现在有些表已经有 4kk+ 记录
服务器是 4GB RAM + Ubuntu 14.04 + Apache (DigitalOcean)
当我只启动服务器(或重新启动它)时,一切正常,但几个小时后,任何请求mysql
都非常慢
我一直有 1.5-2Gb 的空闲 RAM,但我找不到任何迹象,那里出了什么问题。如果我重新启动mysql
进程,一切都会恢复正常状态,但几个小时后又会发生。
我相信数据库结构很好,索引和一切。因为它在前几个小时工作得很好。
我改变了my.cnf
:
innodb_log_file_size = 500M
innodb_buffer_pool_size = 2G
Run Code Online (Sandbox Code Playgroud)
我尝试设置innodb_buffer_pool_size
为3G,但之后mysql无法启动
我试图用谷歌搜索任何可能的词组合,并尝试实施不同的解决方案,但这没有帮助。我真的可以使用一个建议
您的系统可能正在“交换”。这对 MySQL 的性能极其不利。通常,快速解决方法是缩小 buffer_pool。
innodb_buffer_pool_size = 1500M
是关于可以在“小型”4GB 机器中安全完成的所有操作。
请记住,buffer_pool 是一个“缓存”。少量更改大小对 MySQL 的性能影响很小——除非它太小。你的数据似乎太大了,从而导致操作系统问题,超出了 MySQL 的大小。
您是否更改了 my.cnf 中的其他内容?
也减少max_connections
。通常 100 就不错,但对于您的情况,可能 50 会更好。并减少它将创建的 Apache 子进程的数量。30可能还不错。
归档时间: |
|
查看次数: |
9112 次 |
最近记录: |