低配置服务器Mysql如何优化,1核1G内存云服务器内存占用过大参数优化

使用的是宝塔管理面板。

但是由于服务器使用的是1核1G,

运行一段时间后发现服务器经常内存、CPU占用特别高导致服务器宕机

(也不知道是不是有人在ddos攻击我的服务器,反正有很多尝试访问不存在的url请求,估计是在探测扫描可能存在的后面地址)。

就1核CPU+1G内存来说但凡是个有心人要搞你,基本上网站很难防的住,但是有时候如果数据库查询过慢又没有进行一些其他缓存加速类的优化,在同时访问人数较多的情况下网站响应会很慢!昨天趁着有空在网上找了些1G内存mysql参数调优的文章,最终修改了mysql的一些参数,感觉内存及cpu占用还是有所下降。


文章来源地址https://www.toymoban.com/diary/apps/222.html

先记录,后整理


修改了这两个配置参数 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


interactive_timeout: MySQL服务器关闭交互式连接前等待的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。参数默认值:28800秒(8小时) wait_timeout:          MySQL服务器关闭非交互连接之前等待的秒数。在会话启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型--由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义。参数默认值:28800秒(8小时)


   网上能搜到很多关于mysql中的wait_timeout相关的文章,但是大多数只是说明了他的作用,而且都说这个参数要配合那个interactive_timeout参数一起修改才会生效,经过今天我和同事的努力,这里要说一下,其实是我把同事坑了,很惭愧,之前只是看服务器上连接mysql的连接很多都是timewait状态,逐在网上搜索到这个wait_timeout参数,使用该参数后,果然很有效,大大抑制了很多无效的timewait,但是谁知道这个参数会影响后端程序的连接,至于原因,后面会说。

 

      为什么会说网上大多数都是坑呢?因为这个wait_timeout并不是改了配置文件不起作用,也不是非要和那个interactive_timeout一起改,才会生效,只是你在配置文件中配置“wait_timeout = 10”,在mysql里,用show variables like "%timeout%"看到的还是28800



这个wait_timeout的作用是,设置非交互连接(就是指那些连接池方式、非客户端方式连接的)的超时时间,默认是28800,就是8小时,超过这个时间,mysql服务器会主动切断那些已经连接的,但是状态是sleep的连接。

      而我们后端程序是运行在windows下的,所以安装的myodbc,并使用ado方式连接的,也就是连接池方式,这种方式的坏处是,当服务器端去连接mysql的时候,连接池里的连接已经被mysql主动断开,这时取回的连接就是null,再加上程序里对此没有做判断的话,接下来的对数据库的一系列的操作都会出现问题。

  反正就是很坑,唉,说多了都是泪。




到此这篇关于低配置服务器Mysql如何优化,1核1G内存云服务器内存占用过大参数优化的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/apps/222.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年08月19日 16:45
下一篇 2023年08月19日 16:45

相关文章

  • 腾讯云服务器配置怎么选择?CPU内存带宽系统盘如何选合适?

    腾讯云服务器配置包括CPU内存、公网带宽和系统盘,云服务器分为CVM服务器和轻量应用服务器,腾讯云服务器网来详细说下腾讯云服务器配置怎么选择?到底是选择云服务器CVM还是轻量应用服务器?CPU内存选择几核几G?公网带宽多大合适?云服务器系统盘类型怎么选择? 目

    2024年02月11日
    浏览(60)
  • 阿里云第七代云服务器ECS计算c7、通用g7和内存r7配置如何选择?

    阿里云服务器配置怎么选择合适?CPU内存、公网带宽和ECS实例规格怎么选择合适?阿里云服务器网aliyunfuwuqi.com建议根据实际使用场景选择,例如企业网站后台、自建数据库、企业OA、ERP等办公系统、线下IDC直接映射、高性能计算和大游戏并发,使用场景不同云服务器配置也不

    2024年02月19日
    浏览(48)
  • 配置swap交互内存解决centos7服务器内存不足问题

    在系统物理内存不足时,将部分数据暂时移动到硬盘上的交换分区(或称为交换文件、页交换文件),从而释放出物理内存空间供其他程序使用。当需要访问被移动到硬盘上的数据时,操作系统会将其重新加载到物理内存中。这个过程被称为“页面置换”。 (1)例如,要在

    2024年03月27日
    浏览(50)
  • MySQL数据库——MySQL优化服务器,提高MySQL的运行速度!

    MySQL是一种广泛使用的关系型数据库管理系统,优化MySQL服务器可以显著提高数据库的性能和运行速度。在下面的回答中,我将介绍一些常见的MySQL优化策略和技术,以帮助提高MySQL服务器的性能。 1、优化数据库设计: 正确设计数据库结构,使用适当的数据类型、索引和约束

    2024年02月07日
    浏览(69)
  • Linux(包括centos) 如何查看服务器内存、CPU

    CPU架构主要包括:amd64、arm32v7、arm64v8、mips64el、mips32、ppc64le和ppc32等架构。 CPU信息主要为中央处理器详细信息,包括: 架构 核心数量 处理速度 厂商名称 CPU主频 标签 … 注:不同的操作系统或者CPU架构提供的信息不一定相同。 输出: 可以通过grep命令过滤信息: lscpu是一个

    2024年02月12日
    浏览(76)
  • 优化 - 重构一次Mysql导致服务器的OOM

    优化了一次前后端处理不当导致的CPU的一次爆机行为,当然,这和服务器的配置低也有着密不可分的关系,简单的逻辑学告诉我们,要找到真正的问题,进行解决,CPU爆机的关键点在于前后端两个方面,下面针对具体的问题,进行分析和解决。 定位问题 看监控的图表,CPU已

    2024年01月21日
    浏览(74)
  • 读高性能MySQL(第4版)笔记05_优化服务器设置

    2.1.3.1. MySQL只需要少量的内存就能保持一个连接(通常是一个相关的专用线程)打开 2.2.1.1. InnoDB缓冲池大小 2.2.1.2. 需要的内存比其他任何组件都多 2.2.1.3. 不仅缓存索引,还缓存行数据、自适应哈希索引、更改缓冲区、锁和其他内部结构等 2.2.1.4. InnoDB严重依赖缓冲池,应

    2024年02月09日
    浏览(56)
  • Linux中该如何查看当前CPU、内存、硬盘占用情况,如何判断当前服务器负载情况

    要查看当前 Linux 系统的 CPU、内存、硬盘占用情况,可以使用以下命令: 查看 CPU 占用情况: 该命令会显示当前系统进程的 CPU 占用情况,以及每个进程占用的 CPU 百分比和内存使用情况等信息。 查看内存占用情况: 该命令会显示当前系统的内存总量、已使用的内存量、空闲

    2024年02月11日
    浏览(72)
  • 如何通过优化服务器提升网站的SEO排名

    在当今数字化时代,拥有一个高效、稳定的服务器对于网站的成功至关重要。然而,服务器不仅仅是为了提供网站的基本运行,它还可以对搜索引擎优化(SEO)起到关键作用,于是就有了多IP站群服务器这样对SEO非常友好的服务器。通过优化服务器设置和配置,可以提升网站的性

    2024年02月07日
    浏览(97)
  • 华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 & 运行内存情况 & 服务器被非法登陆尝试的解决

    最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍SpringCloud相关组件——nacos和sentinel的安装和配置,并分析了运行内存情况,此外,还有服务器被非法登陆尝试的解决。 其他相关的华为

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包