硬件优化
影响数据库最大的性能问题就是磁盘I/O,为了提升数据库的IOPS性能,可以使用SSD或者PCIE-SSD高速磁盘设备,至少可以获得上百倍或者上 万倍的IOPS性能提升。当数据库系统TPS过高或者业务量较高时,一定要配置阵列卡,而且阵列卡一直要配备cache模块,cache模块还要配置BBU模块来提供持续电量。防止发生断电情况时,出现数据丢失的现象,因为cache模块可以继续工作。在选择阵列卡的cache策略时,为了提高I/O写数据性能,强烈建议设置为 Write Back(WB)。这种策略时将数据先写到cache中,然后再通过阵列卡控制,刷回到磁盘里面。千万不要采用write through策略,不经过cache来直接写盘。在阵列卡中cache的大小不是很大,建议关闭其中的预读功能,让cache起到缓存的作用就可以了。针对阵列级别的选择,建议使用RAID1+0,而不要选择其他模式。
在服务器BIOS层面也可以对MYSQL数据库的优化进行一些配置参数的设置。CPU建议采用最大的性能模式,选择performance per watt optimized来充分发挥CPU 的最大功耗性能,同时加你关闭C1E 和C stats 这类节能选项,因为当负载增加,或者访问量变大时,有可能会造成数据库响应不了太大的请求,从而出现数据库性能变慢、卡住的现象,甚至还有可能MYSQL服务宕机。
内存方面也要选择最大性能模式maximum performance 。尽量在BIOS里就禁掉NUMA功能,将Node Interleaving 设置为Enabled模式,让内存在多个CPU节点之间进行循环使用,这样可以更好的利用内存。无论OS层面的numa功能是否打开,都不会影响数据库的性能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了