82.1W/S的QPS到底大不大?

QPS,全称是Query Per Second,即每秒查询次数。它是一种衡量系统处理能力的重要指标。"每秒1万"的QPS对于一般的个人网站或者中小型网站来说,是相当高的。但是对于大型网站、互联网公司或高并发系统来说,可能就略显不足。在大流量的互联网公司,其核心业务系统一般要求能够处理每秒数十万甚至上百万的QPS。所以说一个系统的QPS是否高,需要根据具体的业务场景和需求来判断。

首先就互联网公司来说,如果按照1W/S来计算,我们假如一天有10个小时是流量高峰期(这是往高了去估,正常来说有8个小时的话这个公司业务都很火了)10*60*60*1w/s=24000w个请求,我们按照一个请求存储(写)一条mysql数据,也就是24000w条数据,假设我们的表结构如下

CREATE TABLE `task_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`task_id` int(11) NOT NULL DEFAULT '0',`name` varchar(32) NOT NULL,`spec` varchar(64) NOT NULL,`protocol` tinyint(4) NOT NULL,`command` varchar(256) NOT NULL,`timeout` mediumint(9) NOT NULL DEFAULT '0',`retry_times` tinyint(4) NOT NULL DEFAULT '0',`hostname` varchar(128) NOT NULL DEFAULT '',`start_time` datetime DEFAULT NULL,`end_time` datetime DEFAULT NULL,`status` tinyint(4) NOT NULL DEFAULT '1',`result` mediumtext NOT NULL,PRIMARY KEY (`id`),KEY `IDX_task_log_protocol` (`protocol`),KEY `IDX_task_log_status` (`status`),KEY `IDX_task_log_task_id` (`task_id`)

各数据类型所占内存大小:

  • bigint: 8字节

  • int: 4字节

  • tinyint: 1字节

  • varchar: 1字节/字符(这里仅考虑英文字符,非英文字符存储占用根据字符集会有不同)

  • mediumtext: 最大16MB,但实际占用大小取决于实际存储的数据长度

  • datetime: 8字节

根据表结构,每一行数据的大小大概如下:

  • id: 8字节

  • task_id: 4字节

  • name: 32字节

  • spec: 64字节

  • protocol: 1字节

  • command: 256字节

  • timeout: 3字节(mediumint占3字节)

  • retry_times: 1字节

  • hostname: 128字节

  • start_time: 8字节

  • end_time: 8字节

  • status: 1字节

  • result: 取决于实际存储的数据长度,最长约16MB

所以,除了result字段之外,其余字段固定长度总计大约514字节,result字段的长度会根据实际存储的数据大小而变。因此,如果我们不考虑result字段,那么每行数据大约占用514字节。如果考虑result字段,那么每行数据的大小就需要根据实际插入的数据来进行计算了。那我们就按照514字节来计算,那么我们可以得出一共需要使用的存储大小为:

24000w行 * 514字节/行 = 1233600000000 字节 = 1233600 MB = 1205.078125 GB = 1.1775TB

所以,总共约1.18TB

以上可以得出1W/SQPS对于一般企业来说是非常巨大的量,一天的存储大小可以到达1TB,我们这就可以想象对于像腾讯、字节这种超大型互联网企业来说,他们的存储成本就是一个很大的开支。这也是为什么他们那么注重基础,对于这种企业,在设计数据库之初,表结构设计就需要考虑存储成本。

当然对于这种类似的企业,他们还有很多优化手段,像普通的Mysql其实是不能满足的,所以有的时候需要借助于其他大数据存储引擎来进行海量数据的存储。

今天我只从存储成本来进行解释QPS 1W/S,实际支持1W/S及以上的场景还需要其他的配合,如CPU,缓存、算法(比如一次请求的耗时)、负载均衡等多项技术来进行优化。如果级别到了百万QPS,那这个应用肯定是国民级别的,如熔断、降级、限流、稳定性、SLA、容灾、异地多活也全部都要考虑进去了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第0章 Linux 基础入门

第0章 Linux 基础入门 RHCSA Red Hat Certified System Administrator 红帽认证系统管理员。 什么是计算机 计算机的组成: 控制器 运算器 存储器 输出设备 输入设备 计算机只能识别0和1,也就是二进制数。 为什么要学习Linux Linux 因其高效率…

Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(上)

目录 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市,使用华夫图分析各个城市的情况 1.北京市的空气质量 2.广州市的空气质量 【上海市和成都市空气质量情况详见下期】 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成…

重发布

一:作用 在两种路由协议之间,或者一个协议的不同进程之间,借助ASBR (同时工作在两种协议或 者协 议的不同进程中)学习到两个网络的路由信息,并且通过重发布进行路由共享,最终实现全网可 达。…

在mysql中我有一列字段,字段类型是Decimal,保留了2位小数,我想过滤这2位小数中不为0的数字,如何过滤呢?

直接看SQL如何实现 SELECT * FROM your_table_name WHERE amount - FLOOR(amount) > 0;解释 这里的FLOOR(amount)函数会返回amount的整数部分,amount - FLOOR(amount)就会得到小数部分。如果小数部分大于0,表示这个数字的小数部分不为0 扩展 如果…

大模型实践笔记(1)——GLM-6B实践

目录 在Ubuntu上的配置Git Large File Storage 安装Git LFS: 设置Git LFS: 使用Git LFS: 安装GLM-6B 环境依赖 ChatGLM2-6B介绍 配置GLM 下载代码 构建环境 安装依赖 本地部署 网页UI 很多模型在hugging face上面,…

知识库系统为什么优秀企业都必备?这篇文章告诉你

在今天的商业世界中,知识就是力量。企业里的每一个小小的灵感、想法、经验,都可能是推动业务增长的源泉。那么,如何系统地管理和使用这些宝贵的知识资源呢?答案就是——知识库系统。 那么,什么是知识库系统呢&#xf…

六、Nacos源码系列:Nacos健康检查

目录 一、简介 二、健康检查流程 2.1、健康检查 2.2、客户端释放连接事件 2.3、客户端断开连接事件 2.4、小结 2.5、总结图 三、服务剔除 一、简介 Nacos作为注册中心不止提供了服务注册和服务发现的功能,还提供了服务可用性检测的功能,在Nacos…

货车运输(树)

[NOIP2013 提高组] 货车运输 题目背景 NOIP2013 提高组 D1T3 题目描述 A 国有 n n n 座城市,编号从 1 1 1 到 n n n,城市之间有 m m m 条双向道路。每一条道路对车辆都有重量限制,简称限重。 现在有 q q q 辆货车在运输货物&#x…

【面试深度解析】快手后端一面:G1、IOC、AOP、并发、JVM生产问题定位、可重复读、ThreadLocal

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

BeanDefinition学习

Spring版本5.1.x Spring中的BeanDefinition是一个接口,用于描述Spring容器中Bean的元数据。BeanDefinition描述了Bean的各种属性,如名称、依赖关系、初始化方法等。这个接口通常用于在Spring的IoC容器中注册Bean,并且当容器需要创建Bean实例…

代码随想录算法训练营第38天 | 动态规划理论基础 509.斐波那契数 70.爬楼梯 746.使用最小花费爬楼梯

动态规划理论基础 动态规划适用于解决有重叠子问题的问题。所以动态规划中的每一个状态一定是由上一个状态推导来的,这一点区分于贪心,因为贪心每一步总是取局部最优。 解题步骤: 确定dp数组的含义确定递推表达式dp数组如何初始化确定遍历顺…

MySql修改字段类型和大小

MySql 修改表字段的类型和大小 原因: 1,在我们设计表的时候,有时设计表字段女的大小和类型的时候,有时可能不合适,需要修改字段的大小 2,修改表字段的常见2种,第一种修改大小,第二…

图像处理之《可逆重缩放网络及其扩展》论文精读

一、文章摘要 图像重缩放是一种常用的双向操作,它首先将高分辨率图像缩小以适应各种显示器或存储和带宽友好,然后将相应的低分辨率图像放大以恢复原始分辨率或放大图像中的细节。然而,非单射下采样映射丢弃了高频内容,导致逆恢复…

LVGL部件6

一.圆弧部件 1.知识概览 2.函数接口 1.lv_obj_clear_flag 在 LVGL(LittlevGL)中,lv_obj_clear_flag 函数用于清除对象的特定标志位。该函数的原型如下: void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);obj 是指…

[力扣 Hot100]Day20 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 出处 思路 旋转时每四个位置为一组进行swap操作,找好对…

计算视图里的projection和aggregation节点区别

Projection 和 Aggregation到底有什么区别? 看名字就能看出来的。 那么在什么场景下用呢? 1. Projection就是投影,也就是说你本来的源里有什么,就直接给你拿出来。 除了这个,它使用的场景就是: 只映射需…

python 读图片 读文件封装

python 读图片封装 支持 视频,图片文件夹,图片 2024.02.01更新 安装依赖项:pip install natsort #-*-coding:utf-8-*- import os.path from natsort import natsorted import cv2class ImgReader:def __init__(self, source, suffixmp4):s…

帮管客CRM 文件上传漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

TCP/IP详细介绍以及TCP/IP寻址

目录 ​编辑 1. TCP/IP 介绍 2. 计算机通信协议(Computer Communication Protocol) 3. 什么是 TCP/IP? 4. 在 TCP/IP 内部 5. TCP 使用固定的连接 6. IP 是无连接的 7. IP 路由器 8. TCP/IP 9. TCP/IP 寻址 10. IP地址 …

谷歌产品大更新:Bard可生成图像;文生音乐平台等5大免费功能

2月2日,谷歌在官网对生成式AI产品进行了大更新,包括类ChatGPT聊天助手Bard可以通过文本提示生成图像; 全新的文生音乐平台MusicFX;新的文生图像平台ImageFX;新的文本扩写平台TextFX;在谷歌地图中增加生成式…