1核1G内存云服务器的mysql5.7内存占用过大参数优化

如果使用的是宝塔管理面板的化,是不允许1G内存的服务器安装mysql5.7的。经过一番查找终于实现在1G内存的服务器上安装好mysql5.7,但是运行一段时间后发现服务器经常内存、CPU占用特别高导致服务器宕机(也不知道是不是有人在ddos攻击我的服务器,反正有很多尝试访问不存在的url请求,估计是在探测扫描可能存在的后面地址)。就1核CPU+1G内存来说但凡是个有心人要搞你,基本上网站很难防的住,但是有时候如果数据库查询过慢又没有进行一些其他缓存加速类的优化,在同时访问人数较多的情况下网站响应会很慢!昨天趁着有空在网上找了些1G内存mysql参数调优的文章,最终修改了mysql的一些参数,感觉内存及cpu占用还是有所下降。

免责说明:本文的mysql参数调整后已测试在我的云服务器环境运行正常,不代表完全适用于所有网友的服务器配置,仅作参考,如果服务器运维及配置不熟悉的朋友请勿操作!

将上面的参数调整下其实就差不多了,还有一些增加的小配置就不再单独赘述,下面贴上配置文件(禁止直接将本文配置文件直接复制,因mysql安装环境的不同直接复制可能会导致不可逆的后果!):

我记得好像增加、修改了这两个配置参数 interactive_timeout=120 和 wait_timeout =120

[client]
#password	= your_password
port		= 3306
socket		= /tmp/mysql.sock

[mysqld]
binlog_cache_size = 32K
thread_stack = 256K
join_buffer_size = 256K
query_cache_type = 1
max_heap_table_size = 64M
port		= 3306
socket		= /tmp/mysql.sock
datadir = /www/server/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 100G
table_open_cache = 256
sort_buffer_size = 1024K
net_buffer_length = 4K
read_buffer_size = 1024K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 4M
thread_cache_size = 32
query_cache_size = 32M
interactive_timeout=120
tmp_table_size = 64M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 120
max_connect_errors = 100
open_files_limit = 65535
wait_timeout =120

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log


long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""


innodb_data_home_dir = /www/server/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /www/server/data
innodb_buffer_pool_size = 64M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

调整完重启mysql服务后,mysql的内存占用基本稳定在12%以下,CPU占用也很小。在使用top查看内存占用时发现有个java进程占用比较高,因为我服务器上没有跑java程序就直接kill掉了。

温馨提示:如果本文还没解决你的问题,可以尝试百度搜索“1g内存 mysql5.7优化”

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/1g-memory-mysql57-optimization/

赞赏

微信赞赏支付宝赞赏

git-basic-command
一个中小企业网管的结业文
更改sql验证模式为sql与windows身份验证混合模式