第五章 优化服务器设置

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 第五章 优化服务器设置

介绍如何为MySQL创建合适的配置文件。

innodb缓冲池和日志文件大小等设置基本合适 。但除非 要时刻,  则没必要改变配置文件,  使用默认设置即可。

MySQL中的配置文件怎么工作的

配置件位于my.cnf中,  配置的类型有全局配置 、会话配    、动态配置文件 。在每次更改后,  使用show variables 确保达 预期效果。

持久化系统变量

使使用set global,  也会恢复到配置文件中的状态 。也就是 说需要同时修改配置文件中的值才能达到预期效果 。为此,         mysql8引了persist 允许在运行时设置⼀次值,  表示将配置写  ⼊磁盘,下次继续使用。

设置变量的副作用

起缓冲区刷新脏页,  导致服务器大量工作 。有时,  变量名 不⼀定是它描述的这样,  比如max_heap_table_size指定内存 中隐式的临时表内存最大值。

规划变量的改变

变量要小⼼,  压榨服务器性能并不⼀定有效 。早上的配 置到了晚上就可能不适用了。

什么不该做

使用调优脚本,  因为效果并不是强关联性的 。调优服务 可能是浪费时间 。不要相信某些公式,  并不是可靠的⽅法。

创建mysql配置文件

配置内存使用


线程缓存

每⼀个处于线程缓存或休眠状态的线程通常的内存是 256kb。

配置MySQL的IO行为

innodb在事务提交时写⼊⽇志,  事务对数据的更改通常映射 空间的随机位置中 。随机IO的开销比顺序IO更大,  使用⽇志 将随机IO转换为顺序IO

innodb刷新日志缓冲区

使互斥锁锁定缓冲区,  可能会有多个事务刷新其⽇志, innodb使用组提交机制,  在单次io时将⼀组⽇志全部提交。


 

innodb表空间

innodb数据保存在表空间中,  表空间是个虚拟的⽂件系

统,  由磁盘上的⼀个或多个⽂件组成 。表空间还包含undo log 修改缓冲区,  双写缓冲区,  和其他结构

innodb-file-per-table允许为每⼀个表使用单独的⽂件 。将数据 在tablename.ibd⽂件中,  更容易回收表的空间,  然而存在空 间的浪费  (每个ibd⽂件都存在浪费)  。

缺点是:使得drop table性能变差 。原因,  删除表空间时需要       innodb找属于该表空间的⻚⾯时进行锁定和扫描缓冲池,  当缓 池过大,  扫描会⾮常慢。

行的旧版本和表空间

如果事务⻓时间打开,  隔离级别在RR环境下,  旧数据⽆法删  这会导致数据持续增⻓ 。可以设置innodb_max_purge_lag延 多修改数据的查询之前,  可以等待清除的最大事务数。

其他IO配置选项

sync-binlog刷新binlog的机制。

配置MySQL并发

基本使用⽅法是,  使用innodb-thread-currency变量 。      innodb使用两阶段策略提高线程进⼊内核的效率,  首先休眠指定 秒数,  然后重试,  失败则进⼊等待队列。


 

⼀旦进入内核,  线程则拥有⼀定的门票,  这限制了线程在返回 待队列之前的可以完成的工作量

交阶段的并发瓶颈,  可以设置innodb_commit_concurrency控 制同时提交的线程数。

安全设置

max-connect-errors,  设置最大连接错误的上限 。设置大⼀

 可以有效禁用由于链接错误而导致阻塞主机。

max-connection,  最大连接数,

skip_name_resolve,此设置禁用DNS查找,  会尝试正在连接 的主机名。

sql-mode,  设置sql的行为。

read_only,  super-read-only 。设置为只读数据库 

高级innodb设置

innodb_autoinc_lock_mode设置自增主键的方式,      innodb_buffer_pool_instances,  提高MySQL的并发。 innodb_io_capacity,  告知innodb多少io容量可使用。

innodb_read_io_threads和innodb_write_io_threads,  读写 的线程数量大小。

innodb_strict_mode,严格模式将警告变为错误。


 

innodb_old_blocks_time,  指定页面从年轻->老年部分所需 的时间 。LRU算法。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力
优化SSR应用以减少服务器压力,可采用代码分割、缓存策略、数据预加载、服务端性能优化、使用CDN、SSR与SSG结合、限制并发请求、SSR与CSR平滑切换、优化前端资源及利用框架特性等策略。这些方法能有效提升性能和稳定性,同时保证用户体验。
|
1月前
|
缓存 监控 定位技术
|
1月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
55 3
|
1月前
|
监控 Kubernetes 安全
如何设置一个有效的远程管理工具来简化服务器的维护工作?
如何设置一个有效的远程管理工具来简化服务器的维护工作?
|
2月前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力?
如何优化 SSR 应用以减少服务器压力?
|
2月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
2月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
37 5
ly~
|
2月前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
182 3
|
2月前
|
Web App开发 安全 网络安全
tplink虚拟服务器设置方法
为了更全面地理解云服务及其在企业应用中的角色,推荐访问,他们提供了一系列高性能、安全稳定的云服务器解决方案,包括但不限于香港云服务器、高防服务器等,特别适合寻求全球化业务扩展的企业。蓝易云不仅拥有全球化的基础设施布局,还提供针对各种行业定制的全栈云解决方案,助力企业实现云端部署,跨越传统界限,即刻启航云端之旅。
45 0
|
3月前
|
存储 缓存 监控
优化服务器管理
优化服务器管理
42 11