数据库优化前章

简介:

 1、硬件层相关优化


  1.1、CPU相关


  在服务器的BIOS设置中,可调整下面的几个配置,目的是发挥CPU最大性能,或者避免经典的NUMA问题:


  1、选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,跑DB这种通常需要高运算量的服务就不要考虑节电了;


  2、关闭C1E和C States等选项,目的也是为了提升CPU效率;


  3、Memory Frequency(内存频率)选择Maximum Performance(最佳性能);


  4、内存设置菜单中,启用Node Interleaving,避免NUMA问题;



  1.2、磁盘I/O相关


  下面几个是按照IOPS性能提升的幅度排序,对于磁盘I/O可优化的一些措施:


  1、有阵列卡时,设置阵列写策略为WB,甚至FORCE WB(若有双电保护,或对数据安全性要求不是特别高的话),严禁使用WT策略。


  2、尽可能选用RAID-10,而非RAID-5;


  3、使用机械盘的话,尽可能选择高转速的,例如选用15KRPM,而不是7.2KRPM的盘



 2、系统层相关优化



  2.1、文件系统层优化

1、SSD盘的I/O调度为noop

2、磁盘文件需为xfs

3、磁盘挂载参数中增加:noatime, nodiratime, nobarrier几个选项




  2.2、其他内核参数优化


  针对关键内核参数设定合适的值,目的是为了减少swap的倾向,并且让内存和磁盘I/O不会出现大幅波动,导致瞬间波峰负载:


      1、将vm.swappiness设置为5-10左右即可,甚至设置为0(RHEL 7以上则慎重设置为0,除非你允许OOM kill发生),以降低使用SWAP的机会;


      2、将vm.dirty_background_ratio设置为5-10,将vm.dirty_ratio设置为它的两倍左右,以确保能持续将脏数据刷新到磁盘,避免瞬间I/O写,产生严重等待;


      3、将net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse都设置为1,减少TIME_WAIT,提高TCP效率;

篇外话   

 1、让LINUX系统支持xfs文件系统

1、安装xfs支持包

yum -y install xfsprogs kmod-xfs xorg-x11-xfs xfsdump

2、卸载掉原来已挂在的分区,如让sda2变成xfs分区

umount /dev/sda2

3、格式化成xfs格式

mkfs.xfs -f /dev/sda2

4、重新mount

mount -t xfs -o defaults,noatime,nodiratime /dev/sda2 /data

且写入到/etc/fstab文件中后reboot

/dev/sda2             /data                   xfs    defaults,noatime,nodiratime    1 2

 2、更改IO调度算法

# echo noop > /sys/block/vda/queue/scheduler

# time dd if=/dev/sda1 of=/dev/null bs=2M

#echo anticipatory > /sys/block/vda/queue/scheduler

time dd if=/dev/sda1 of=/dev/null bs=2M

# echo cfq > /sys/block/sda/queue/scheduler

 time dd if=/dev/sda1 of=/dev/null bs=2M 


查看

cat cat /sys/block/vda/queue/scheduler ###vda是指你目前的磁盘

修改

echo 'cfq'>/sys/block/vda/queue/scheduler

立即生效

 3、修改内存调度算法(非统一内存访问NUMA)

查看是否支持:dmesg | grep -i numa

numactl --hardware命令则会返回不同节点的内存总大小,可用大小,以及node distance等信息

  


本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1908451

相关文章
|
13天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
26天前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1月前
|
存储 搜索推荐 关系型数据库
深度探讨数据库索引的数据结构及优化策略
深度探讨数据库索引的数据结构及优化策略
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】7、SQL 优化
【MySQL 数据库】7、SQL 优化
46 0
|
2月前
|
存储 监控 数据库
《优化数据库性能的六大技巧》
数据库作为后端开发中至关重要的一环,在实际应用中经常遇到性能瓶颈问题。本文将分享六大实用技巧,帮助开发者优化数据库性能,提升系统响应速度。
|
2月前
|
缓存 数据库 索引
面试题17: 数据库优化
面试题17: 数据库优化
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
154 0
|
13天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
1天前
|
SQL 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
11 3

热门文章

最新文章