电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL核心參數優化文件my.ini實現

瀏覽:162日期:2023-02-18 16:43:19
目錄
  • 一.數據庫服務器配置
  • 二.CPU的優化
  • 三.內存的優化
  • 四.IO的優化
  • 五.連接的優化
  • 六.數據一致性的優化

一.數據庫服務器配置

CPU:48C
內存:128G
DISK:3.2TSSD

二.CPU的優化

innodb_thread_concurrency=32
表示SQL經過解析后,允許同時有32個線程去innodb引擎取數據,如果超過32個,則需要排隊;
值太大會產生熱點數據,global鎖爭用嚴重,影響性能

三.內存的優化

query_cache_type=0
query_cache_size=0
緩存查詢,5.6默認關閉,在應用層實現,比如MC、redis

四.IO的優化

1.innodb_buffer_pool_size=50G

類似SGA,衡量總的IO處理能力上限,一般為物理內存的60%-70%,這里128G部署2個實例,剩下28G分配給OS和mysql連接等使用

2.innodb_io_capacity=20000

每秒后臺進程處理IO數據的上限,一般為IO QPS總能力的75%
比如SSD是3W QPS,75%大概是2W,雙實例減半,為1W,幾個實例除以幾

3.innodb_log_files_in_group=4

幾個innodb redo log日志組

4.innodb_log_file_size=1000M

redo log日志循化寫,生產必須大于1G,
如果太小,那么innodb_buffer_pool_size的數據有可能不能及時寫入redo log造成halt等待;查看是否夠用?如果value大于0,則提高改參數或者增加日志組

root@master 12:51:  [(none)]> show global status like "%log_wait%";+------------------+-------+| Variable_name    | Value |+------------------+-------+| Innodb_log_waits | 0     |+------------------+-------+1 row in set (0.00 sec)root@master 12:54:  [(none)]> show global status like "%Innodb_os_log_written%";+-----------------------+-------+| Variable_name | Value |+-----------------------+-------+| Innodb_os_log_written | 1024  |+-----------------------+-------+1 row in set (0.00 sec)#此參數大小可作為設置日志文件size大小參考值

5.innodb_flush_method=O_DIRECT

SSD直接寫硬盤,不寫硬盤cache,也就是繞過fsync()刷硬盤

6.innodb_max_dirty_pages_pct=50

當臟塊達到innodb_buffer_pool_size的50%時,觸發檢查點,寫磁盤

7.innodb_file_per_table=on

一表一文件,可以避免共享表空間的IO競爭

8.innodb_page_size=4k

默認是16K,這里是SSD,寫SSD前要擦除,擦除單位是extent,一個extent有128個page組成,16128 > 4128 ,效率會更高

9.innodb_flush_neighbors=0

SSD設置為0,SAS打開刷新相鄰塊,隨機訪問轉換為順序訪問

五.連接的優化

1.back_log=300

默認是50,TCP/IP的連接數量,一個連接占用256KB內存,最大是64MB,256 * 300 =75MB內存
和三次握手有關系

syn_queue取64和tcp_max_sync_backlog最大者,默認是1024,當瞬時很多連接進來這個參數會進行限制,否則太大容易消耗資源
accept queue取back_log和somaxconn最小者,用來防止丟包,當瞬時很多連接進來達到上限后,后來連接將超時觸發重傳機制
當有3000個連接進來,將隊列accept queue占滿,應用還沒來得及將請求從隊列中取出,剩下的2700個連接將被拒絕,每取走一個請求(一個連接,mysql一個線程一個連接),將創建一個thread線程

net.ipv4.tcp_max_sync_backlog= 8192  類似活動場所sync接收隊列的長度,默認是1024,當mysql在很短時間內得到很多的請求,需要增加,太大會消耗資源太小的話會在show processlist出現未認證錯誤net.core.somaxconn=1024   類似活動場所中的座位數盡可能防止丟包,超過這個值會觸發超時或者重傳,限制在net.ipv4.ip_local_port_range這個范圍之內

2.max_connections=3000

連接的創建和銷毀都需要系統資源,比如內存、文件句柄
業務說的支持多少并發,指的是每秒請求數,也就是QPS
同一時刻并行的SQL由innodb_thread_concurrency決定,最大不能超過該值
如果一個用戶的請求數據超過64MB(比如排序),就會申請臨時空間,放到硬盤上
如果3000個用戶同時連上mysql,最小需要內存3000256KB=750M,最大需要內存300064MB=192G,如果innodb_buffer_pool_size是80GB,可用內存不到48G,192GB>48GB,將會產生SWAP,此時將會影響性能
連接數過高,不一定帶來吞吐量的提高,而且可能占用更多的系統資源
一個DB 3W QPS計算,前端有100個web服務器,每個web服務器需要300個QPS,每個QPS占用時間=網絡來回時間+SQL執行時間,以20ms計算,需要6個連接數(300/1000/20ms=6)
示例1:有100臺web服務器,PHP/JAVA的最大連接數可設置為:3000/100=30
示例2:有30臺web服務器,要擴容到60臺,web服務器連接數怎么配置?web服務器最大連接數:之前是3000/30=100,現在3000/60=50即可

3.max_user_connections=2980

剩余連接數用作管理

4.table_open_cache=1024

打開表的緩存,跟表數量沒關系
1000個連接上來,都需要訪問A表,那么會打開1000個表,打開1000個表是指mysql創建1000個這個表的對象,連接直接訪問表對象,類似會把這張表做一個class,1000個連接都訪問這個表對象,當表對象沒了,重新new一個,不需要每次都打開物理表

root@master 14:44:  [(none)]> show variables like "%table_open_cache";+------------------+-------+| Variable_name    | Value |+------------------+-------+| table_open_cache | 1024  |+------------------+-------+1 row in set (0.00 sec)root@master 14:46:  [(none)]> show global status like "open%tables%"; +---------------+-------+| Variable_name | Value |+---------------+-------+| Open_tables   | 19    || Opened_tables | 113   |+---------------+-------+2 rows in set (0.00 sec)

可以考慮設置為max_connections或者max_connections*查詢同時用到的表個數或者

5.thread_cache_size=512

都是短連接進來容易產生短連接風暴
會話層:事務狀態、認證會話
連接層:網絡連接、包傳輸
一個用戶 對應 一個session 對應 一個connection
connection - thread:操作系統調用
3000個用戶進來使用cache的512個線程,用完就放回去,避免創建、銷毀線程的開銷

6.wait_timeout=120

指的是app應用連接mysql進行操作完畢后,空閑120秒后斷開

7.interactive_timeout=120

指的是mysql client連接mysql進行操作完畢后,空閑120秒后斷開

六.數據一致性的優化

1.innodb_flush_log_at_trx_commit=1

0,不管有沒有提交,每秒鐘都寫到binlog日志里
1,每次提交事務,都會把log buffer的內容寫到磁盤里去,對日志文件做到磁盤刷新,安全最好
2,每次提交事務,都寫到操作系統緩存,由OS刷新到磁盤,性能最好

2.sync_binlog=1

0,事務提交后,mysql不做fsync之類的刷盤,由文件系統來決定什么落盤
n,多少次提交,每n次提交持久化磁盤
生產設為1

3.日志寫盤過程

1)三個update會話,三個線程都會產生的操作日志
2 )commit后提交到公共的cache中,三個進程之間不能相互看到對方的操作內容
3)經過write寫入到標準I/O cache中,也就是文件系統句柄,線程緩存
4)如果需要讓其他線程看到文件句柄內容,就需要通過flush刷新到全局可見文件系統緩存
5)最后最重的一步是將內存數據sync落盤

到此這篇關于MySQL核心參數優化文件my.ini實現的文章就介紹到這了,更多相關MySQL my.ini內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
相關文章:
主站蜘蛛池模板: 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 软装设计-提供软装装饰和软装配饰及软装陈设的软装设计公司 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 换链神器官网-友情链接交换、购买交易于一体的站长平台 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 深圳品牌设计公司-LOGO设计公司-VI设计公司-未壳创意 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 手术室净化厂家_成都实验室装修公司_无尘车间施工单位_洁净室工程建设团队-四川华锐16年行业经验 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 吨袋包装机|吨包秤|吨包机|集装袋包装机-烟台华恩科技 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 玄米影院| 包塑软管|金属软管|包塑金属软管-闵彬管业 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 |