mysql 性能优化 8G内存 4核,高手进来,谢谢

您所在的位置:网站首页 铭瑄h61L支持cpu列表 mysql 性能优化 8G内存 4核,高手进来,谢谢

mysql 性能优化 8G内存 4核,高手进来,谢谢

2023-04-13 13:03| 来源: 网络整理| 查看: 265

数据库优化大概就两个方面:

1、如果有资金投入,更换存储设备,比如用专门的存储阵列,肯定比用单机磁盘强得多,而且可靠性高得多。

2、没有资金,硬件设备换不了,那就从数据库设计上着手。磁盘分片、建立索引,特别是索引技术,如果配合程序的优化,效率改善是最明显的。程序中用到的sql语句一定要注意写法,有时明明字段上有索引,但程序中的语句就是不通过索引得到数据,这样的程序,效率很低。一般都是程序where子句的字段顺序与索引不一致造成的。

49G内存,4个4核CPU,求最优mysql配置,必须是myisam引擎。:

英特尔(Intel)32纳米 酷睿i5 四核处理器 i5 2300盒装CPU=1259块

技嘉(GIGABYTE)GA-P61-USB3P 主板 (Intel H61 /LGA 1155=679块

铭瑄(MAXSUN)HD6790巨无霸 800MHZ/4000MHZ/256bit/1024M/GDDR5 PCIE显卡性价比最高的HD6790=750块

海盗船(CORSAIR)Vengeance DDR3 1600 12GB(3x4GB)台式机内存789块

主硬盘:饥饿鲨(OCZ)Solid3 120G 2.5英寸 SATA-3固态硬盘(SLD3-25SAT3-120G)=1099块

副硬盘:希捷(Seagate)500G ST500DM002 7200转 16M SATA 6Gb/秒 建达蓝德 盒539块

全汉(FSP)第五元素 电源(额定700W/准80PLUS铜牌/ATX2.31EPS 12V=399元

酷冷至尊(CoolerMaster)SCOUT-侦察兵 中塔式电脑机箱(黑色)SGC-2000-KKN1-GP外观彪悍=499块

CPU占用过高诊断思路

mpstat -P ALL 1,查看cpu使用情况,主要消耗在sys即os系统调用上

perf top,cpu主要消耗在_spin_lock

生成perf report查看详细情况

CPU主要消耗在mutex争用上,说明有锁热点。

采用pt-pmp跟踪mysqld执行情况,热点主要集中在mem_heap_alloc和mem_heap_free上。

Pstack提供更详细的API调用栈

Innodb在读取数据记录时的API路径为

row_search_for_mysql --》row_vers_build_for_consistent_read --》mem_heap_create_block_func --》mem_area_alloc --》malloc --》  _L_unlock_10151 --》__lll_unlock_wait_private

row_vers_build_for_consistent_read会陷入一个死循环,跳出条件是该条记录不需要快照读或者已经从undo中找出对应的快照版本,每次循环都会调用mem_heap_alloc/free。

而该表的记录更改很频繁,导致其undo history list比较长,搜索快照版本的代价更大,就会频繁的申请和释放堆内存。

Linux原生的内存库函数为ptmalloc,malloc/free调用过多时很容易产生锁热点。

当多条 SQL 并发执行时,会最终触发os层面的spinlock,导致上述情形。

解决方案

将mysqld的内存库函数替换成tcmalloc,相比ptmalloc,tcmalloc可以更好的支持高并发调用。

修改my.cnf,添加如下参数并重启

[mysqld_safe]malloc-lib=tcmalloc

上周五早上7点执行的操作,到现在超过72小时,期间该实例没有再出现cpu长期飙高的情形。

以下是修改前后cpu使用率对比

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.outofmemory.cn/zaji/7982455.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3