MYSQL经常挂,怀疑内存不够,加SWAP优化

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

如题,最近http://www.12reads.cn/MySQL经常挂,最近挂的LOG:


[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. At time: Wed Dec  7 09:15:01 CST 2016 :MySQL error stop .  
  2. At time: Wed Dec  7 09:30:01 CST 2016 :MySQL error stop .  
  3. At time: Wed Dec  7 10:00:02 CST 2016 :MySQL error stop .  
  4. At time: Mon Dec 19 04:30:01 CST 2016 :MySQL error stop .  
  5. At time: Mon Dec 19 04:45:01 CST 2016 :MySQL error stop .  
  6. At time: Mon Dec 19 05:00:01 CST 2016 :MySQL error stop .  
  7. At time: Mon Dec 19 05:15:01 CST 2016 :MySQL error stop .  
  8. At time: Mon Dec 19 05:30:01 CST 2016 :MySQL error stop .  
  9. At time: Mon Dec 19 05:45:01 CST 2016 :MySQL error stop .  
  10. At time: Mon Dec 19 06:00:01 CST 2016 :MySQL error stop .  
  11. At time: Mon Dec 19 06:15:01 CST 2016 :MySQL error stop .  
  12. At time: Mon Dec 19 06:30:01 CST 2016 :MySQL error stop .  
  13. At time: Mon Dec 19 06:45:01 CST 2016 :MySQL error stop .  
  14. At time: Mon Dec 19 07:00:01 CST 2016 :MySQL error stop .  
  15. At time: Mon Dec 19 07:15:01 CST 2016 :MySQL error stop .  
  16. At time: Mon Dec 19 07:30:02 CST 2016 :MySQL error stop .  
  17. At time: Mon Dec 19 07:45:01 CST 2016 :MySQL error stop .  
  18. At time: Mon Dec 19 08:00:02 CST 2016 :MySQL error stop .  
  19. At time: Mon Dec 19 08:15:01 CST 2016 :MySQL error stop .  
  20. At time: Mon Dec 19 08:30:01 CST 2016 :MySQL error stop .  
  21. At time: Mon Dec 19 08:45:01 CST 2016 :MySQL error stop .  
  22. At time: Mon Dec 19 09:00:01 CST 2016 :MySQL error stop .  
  23. At time: Mon Dec 19 09:15:02 CST 2016 :MySQL error stop .  
  24. At time: Mon Dec 19 09:30:01 CST 2016 :MySQL error stop .  
  25. At time: Mon Dec 19 09:45:01 CST 2016 :MySQL error stop .  
  26. At time: Mon Dec 19 10:00:01 CST 2016 :MySQL error stop .  
  27. At time: Tue Dec 20 23:15:02 CST 2016 :MySQL error stop .  
  28. At time: Tue Dec 20 23:30:01 CST 2016 :MySQL error stop .  
  29. At time: Tue Dec 20 23:45:01 CST 2016 :MySQL error stop .  
  30. At time: Thu Dec 22 11:56:04 CST 2016 :MySQL error stop .  
  31. At time: Thu Dec 22 21:26:14 CST 2016 :MySQL error stop .  
  32. At time: Thu Dec 22 21:56:12 CST 2016 :MySQL error stop .  
  33. At time: Sat Dec 24 12:02:17 CST 2016 :MySQL error stop .  
  34. At time: Sat Dec 24 12:08:01 CST 2016 :MySQL error stop .  
  35. At time: Sat Dec 24 12:10:01 CST 2016 :MySQL error stop .  

而查看MYSQL错误日志,有提示:
[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [ERROR] InnoDB: Unable to lock /usr/local/mysql/var/ibdata1, error: 11  


error 11在mysql中是资源临时不可用。


找了一堆原因未果,最好想是不是内存瓶颈了?


查看了下服务器一直没开房SWAP,所以打开了下了,观察看看是不是情况有所改变。


以下是开启SWAP的具体步骤:(http://www.12reads.cn/目前2G内存,所以我选择了bs=1m,count=2048,也就是分配2G给SWAP来用。)


1、创建用于交换分区的文件:


 
 
  1. dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block

:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。

2、设置交换分区文件:


 
 
  1. mkswap /mnt/swap

3、立即启用交换分区文件


 
 
  1. swapon /mnt/swap

:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a 

 

4、设置开机时自启用 SWAP 分区:

需要修改文件 /etc/fstab 中的 SWAP 行,添加


 
 
  1. /mnt/swap swap swap defaults 0 0

:/mnt/swap 路径可以修改,可以根据创建的 SWAP 文件具体路径来配置。

5、修改 swpapiness 参数

Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区:

可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:


 
 
  1. echo 10 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:  


 
 
  1. # vim /etc/sysctl.conf
  2. vm.swappiness=10
  3. # sysctl -p

关闭 SWAP

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。

1、free -m 查询 SWAP 分区设置:

2、使用命令 swapoff 关闭 SWAP,比如:


 
 
  1. swapoff /mnt/swap

3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

4、  通过 free -m  确认 SWAP 已经关闭。

5、 swappiness 参数调整:

可以使用下述方法临时修改此参数,这里配置为 0%:


 
 
  1. echo 0 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:


 
 
  1. # vim /etc/sysctl.conf
  2. vm.swappiness=0
  3. # sysctl -p
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
1月前
|
机器学习/深度学习 算法 PyTorch
125_训练加速:FlashAttention集成 - 推导注意力优化的独特内存节省
2025年,大型语言模型的训练面临着前所未有的挑战。随着模型参数量和序列长度的不断增加,传统注意力机制的内存瓶颈问题日益突出。FlashAttention作为一种突破性的注意力算法,通过创新的内存访问模式和计算优化,显著提升了训练效率和内存利用。
|
2月前
|
SQL 存储 关系型数据库
MySQL内存引擎:Memory存储引擎的适用场景
MySQL Memory存储引擎将数据存储在内存中,提供极速读写性能,适用于会话存储、临时数据处理、高速缓存和实时统计等场景。但其数据在服务器重启后会丢失,不适合持久化存储、大容量数据及高并发写入场景。本文深入解析其特性、原理、适用场景与限制,并提供性能优化技巧及替代方案比较,助你合理利用这一“内存闪电”。
|
1月前
|
存储 机器学习/深度学习 PyTorch
119_LLM训练的高效内存管理与优化技术:从ZeRO到Flash Attention
大型语言模型(LLM)的训练面临着前所未有的计算和内存挑战。随着模型规模达到数百亿甚至数千亿参数,高效的内存管理成为训练成功的关键因素之一。2025年,LLM训练的内存优化技术已经取得了显著进展,从ZeRO优化器到Flash Attention等创新技术,为训练超大规模模型提供了可能。
|
4月前
|
缓存 固态存储 Windows
如何让内存发挥到最大效能?全面优化指南,提升电脑运行体验
电脑内存使用不合理会导致卡顿,本文教你如何优化内存性能。检查内存容量与主板支持上限,考虑升级或调整配置;关闭后台程序、管理浏览器标签、结束异常进程以释放内存;设置虚拟内存、调整视觉效果、定期重启提升效率;必要时增加内存条、选择高频内存、更换固态硬盘。避免盲目清理内存和依赖大内存忽视其他硬件瓶颈。只需合理设置,无需额外花钱,就能显著提升电脑速度。
|
3月前
|
缓存 关系型数据库 MySQL
降低MySQL高CPU使用率的优化策略。
通过上述方法不断地迭代改进,在实际操作中需要根据具体场景做出相对合理判断。每一步改进都需谨慎评估其变动可能导致其他方面问题,在做任何变动前建议先在测试环境验证其效果后再部署到生产环境中去。
199 6
|
4月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
247 4
AI代理内存消耗过大?9种优化策略对比分析
|
4月前
|
存储 人工智能 API
AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
在AI代理系统开发中,上下文工程成为提升系统性能的关键技术。本文探讨了从提示工程到上下文工程的转变,强调其通过为AI系统提供背景信息和工具支持,显著提升智能化程度和实用价值。文章系统分析了上下文工程的理论基础、核心策略(如写入、选择、压缩和隔离),并结合LangChain和LangGraph工具,展示了如何实现上下文工程技术以优化AI代理性能。通过Scratchpad机制、内存管理、RAG系统集成、多代理架构及沙盒环境等技术手段,开发者可以更高效地构建高性能、可扩展的AI系统。
487 0
AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
|
4月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
128 2
|
3月前
|
边缘计算 算法 Java
Java 绿色计算与性能优化:从内存管理到能耗降低的全方位优化策略与实践技巧
本文探讨了Java绿色计算与性能优化的技术方案和应用实例。文章从JVM调优(包括垃圾回收器选择、内存管理和并发优化)、代码优化(数据结构选择、对象创建和I/O操作优化)等方面提出优化策略,并结合电商平台、社交平台和智能工厂的实际案例,展示了通过Java新特性提升性能、降低能耗的显著效果。最终指出,综合运用这些优化方法不仅能提高系统性能,还能实现绿色计算目标,为企业节省成本并符合环保要求。
148 0
|
4月前
|
存储 SQL 关系型数据库
MySQL 动态分区管理:自动化与优化实践
本文介绍了如何利用 MySQL 的存储过程与事件调度器实现动态分区管理,自动化应对数据增长,提升查询性能与数据管理效率,并详细解析了分区创建、冲突避免及实际应用中的关键注意事项。
194 0

推荐镜像

更多