您的位置:首页 > 数据库 > MySQL

Mysql系统规划

2016-04-08 11:11 453 查看
1.数据总量

结果:1年内数据量大约500G,每秒产生的数据量为500*1024(MB)*1024(KB)/(365*24*60*60)31536000s=17KB/s

预估方法:一般我们以一年为一个时间单位,根据接口规范和需求说明书,把所有表中所有字段的长度累加起来,并计算出总的记录条数,

这样就可以大概算出总的数据量是多少,在根据超配原理,放大2~3倍来得出结论。

计算过程如下:

        共有244张表

        5%的表(244×10%=25),即25张表增长快

        定单表数据量最大

        平均1分钟1笔定单

        结果放大2倍

        mysql> select sum(coalesce(CHARACTER_OCTET_LENGTH,0)+coalesce(NUMERIC_PRECISION,0)+coalesce( DATETIME_PRECISION,0))*365*24*60*2/10/1024/1024/1024 as column_len

        from COLUMNS

        where TABLE_SCHEMA='weshop_tmp' ;

        +----------------------+

        | column_len           |

        +----------------------+

        | 498.3618794381618500 |

2.流量评估:高峰带宽需求:4687.5008Mbps,正常时段:1.25Mbps

每秒读写比:读写比9:1

高峰时段每秒300000次请求:每秒读请求30000/10*9=27000次/秒,每秒写请求30000/10*1=3000次/秒

高峰时段,每秒读请求27000,每秒读请求数据量为20KB*27000=527.3438MB

高峰时段,每秒写请求3000,每秒写请求数据量为20KB*3000=58.5938MB

高峰时段,每秒请求传送数据量为:527.3438MB+58.5938MB=585.9376MB

高峰时段,带宽需求585.9376MB*8=4687.5008Mbps

正常时段每秒写请求计算:

            平均插入一条记录长度为:

            mysql> select sum(coalesce(CHARACTER_OCTET_LENGTH,0)+coalesce(NUMERIC_PRECISION,0)+coalesce( DATETIME_PRECISION,0))/244 as column_len

             from COLUMNS

            where TABLE_SCHEMA='weshop_tmp';

            +------------+

            | column_len |

            +------------+

            | 20862.6516 |

            根据第一步计算,每秒写入数据量大约为17KB/s,可以求出每秒写请求(insert写请求+update写请求+delete写请求)17KB/21KB=0.8次,每秒读请求为0.8/10*9=7.2次

            正常时段,每秒读请求0.8,每秒读请求数据量为20KB*0.8=16KB

            正常时段,每秒写请求7.2,每秒写请求数据量为20KB*7.2=144KB

            正常时段,每秒请求传送数据量为:160KB

            正常时段,带宽需求160KB*8/1024=1.25Mbps

3.内存评估:14GB

处理最近7天内的数据:热数据量为500GB/365天*7天=10GB

系统需求:其他组件例如OS、Application、network需要大约4GB内存

4.磁盘空间需求

数据区 (mysql数据目录)500G

系统区 (操作系统需要)50G

备份区(存放每天备份文件,线上保存七天,本地保存30天) 15G

临时区(临时表空间)  5G

日志区(binlog日志,保存7-14天) 10G
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mysql 系统规划