05 生产经验:真实生产环境下的数据库机器配置如何规划?
作者:
呢看了看 | 来源:发表于
2020-12-01 17:05 被阅读0次 Java系统应用部署的时候,选用的机器配置是2核4G和4核8G多一些,数据库部署的时候机器配置最低在8核16G以上,正常在16核32G。一般Java应用系统部署在4核8G的机器上,每秒钟抗下500左右的并发访问量,当然这个也不一定,假设你每个请求花费1s可以处理完,那么你一台机器每秒就可以处理100个请求,如果你每个请求只要花费100ms就可以处理完,那么一台机器每秒就可以处理几百个请求。
所以一台机器能抗下每秒多少请求,往往是跟你每个请求处理耗费多长时间是关联的,但是大体上来说,4核8G的机器部署普通的Java系统,每秒 抗下几百的并发访问,从每秒一两百到每秒七八百请求,都是可能的,关键是看你每个请求处理需要耗费多长时间。
MySQL数据库至少是8核16G的机器,甚至是16核32G的机器更加合适一些。对于我们的java系统,主要耗费时间的是java和数据库之间的网络通信,对Java系统而言,如果仅仅是系统内部运行一些业务逻辑,这个性能是极高极高的。对于Java系统接收到的每个请求,耗时最多的还是发送网路请求到数据库上去,等待执行一些SQL语句,返回结果给你。
通常说Java系统压力很大,其实主要的压力和复杂都是集中在你依赖的那个MySQL数据库上的。因为你执行大量的增删改查的SQL语句的时候,MySQL数据库需要对内存和磁盘文件进行大量的IO操作,所以数据库往往是负载最高的,而且你的Java系统一般不需要直接大量的读写本地文件进行耗时的IO操作。所以对于一个数据库而言,都是选用8核16G的机器作为起步,最好是选用16核32G的机器更加合适一些。因为数据库需要进行大量的磁盘IO操作,他的每个请求都比较耗时一些,所以机器的配置自然就要高了。根据之前的经验而言,8核16G的机器部署的MySQL数据库,每秒抗个一两千并发是没有问题的,并发量再高一些,就危险了,因为数据库的CPU、磁盘、IO、内存的负载都会很高,数据库压力过大就会宕机。对于16核32G的而言,每秒扛个两三千、甚至三四千都是可以的,如果达到每秒上万请求,那么数据库的CPU、磁盘、IO、内存的负载就会飙升到很高,可能会宕机。另外对于数据库而言,如果可以的话,最好是选用SSD固态硬盘,而不是普通的机械硬盘,因为数据库最大的复杂就在于大量的磁盘IO、需要大量的读写磁盘文件,如果能使用SSD固态硬盘,那么你的数据库每秒能抗的并发请求量就会更加高一些。
本文标题:05 生产经验:真实生产环境下的数据库机器配置如何规划?
本文链接:https://www.haomeiwen.com/subject/jirvxktx.html
网友评论