前言

可能影响到数据库性能的几个点,其一就是服务器硬件,也是本节要说的CPU与可用内存。

引入

当热数据超过可用内存大小,MemCache存储引擎缓存层容易失效(当缓存大量失效时,容易产生大量的网络传输),从而影响服务器的性能。

当出现这类I/O系统瓶颈时,我们就需要升级I/O子系统,来增加更多的内存,网络与I/O资源就是对我们数据库性能影响的第二个硬件因素。

CPU选型

采购人员经常性会向我们请教需要买什么参数的CPU硬件等等。

我到时想什么都买最好的!可是成本这种东西,只能让你选其一

那么,我们的CPU是要频率还是数量呢?

首先我们应该知道我们的应用是否是CPU密集型?

其实大多数时候我们要选择更好的而不是更多的
对于目前版本的MYSQL,不支持多CPU对同一SQL并发处理

当然,我们也要看看系统的并发量如何?(并发是纳秒级别的)

衡量数据库处理能力的指标 QPS:同时处理SQL的数量(这里是每秒)

MYSQL目前被大量应用于Web类的应用中,这类应用的并发量也是非常大的,则其CPU核心数量就比频率重要

同时也要考虑所使用的MYSQL的版本(高版本对多核CPU的支持较好、起码你可以放心使用16核或者32核的CPU)

当然,如果你想要使用多核CPU的话,还需要使用MYSQL最新版本,这样才能做到最好的性能。

关于内存

MYSQL本身是单线程的
  • 内存的大小直接影响MYSQL的性能
  • 把数据存储到缓存中,可以大大提高数据的性能
常用的MYSQL存储引擎
MyISAM 将索引存储到内存中,数据则放在操作系统中

InnoDB 则是同时在内存存储索引和数据,进而提高数据库运行效率
内存配置的提示
1、内存虽然越多越好,但是对性能的影响是有限的,并不能无限的增加性能
2、当然,多余的内存,可以增加操作系统等其他服务的性能
缓存对读有益处,同时对写操作也有益处

CPU -》 内存 -》 磁盘

缓存可以对写操作进行延缓,将多次写入变成一次写入(Eg:浏览量计数器)


如果本文对你有所帮助,欢迎关注本人公众号,谢谢。
图片描述


Java猫说
1.3k 声望930 粉丝

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。