Soft_Job 板


LINE

随便试着写一下考卷 赚个P币 ※ 引述《taliao (云淡风清)》之铭言: : 有趣的问题,来一些激荡吧~ : Q: 你怎麽知道 CRUD 分别吃多少系统资源?需要多少 IOPS / CPU? : Q: 承上,要如何知道 CURD 吃了哪些资源? : Q: 承上,怎麽解开这些资源的分配问题? 其实这题超难回答。实务上会分为 Script 所吃的资源跟储存对象所吃的资源。 Script 来说 Python/Ruby/Node.js 等每个 Process 都会吃到 CPU + 记忆体 储存对象除了 CPU 跟记忆体之外也会吃到 Disk I/O。 当你做 Create 的动作时,Script 端会需要用 CPU 跟记忆体去运算逻辑 把插入的指令传给资料库,资料库除了 CPU 运算,以及将资料写入磁碟的 I/O 外 还会视资料库的索引跟快取优化去做其他优化的记忆体/磁碟 I/O 运算 因此一个准确的 IOPS/CPU 不太容易得出,但是我们可以透过系统监测 透过实质的 CPU、记忆体、I/O 使用率去得到系统大致的运转状态 并使用资料库系统的 EXPLAIN 得知储存上的瓶颈点 : Q: 1 个连线的 CRUD、10 个连线的 CRUD、100 个的 CRUD ..... 类推, : 他们的架构是怎样? 很简单的 CRUD 1 个连线 1个实体 =============== DB 实务上的 CRUD 架构 Load balancer -- A XX个实体 == 连线 Pool == DB with sharding -- B XX个实体 == 连线 Pool == -- C XX个实体 == 连线 Pool == -- D XX个实体 == 连线 Pool == : Q: CRUD 的对象是 RDBMS? NoSQL? Block Storage? Cache? Buffer? : Q: 承上: CRUD 的对象怎麽选?我只会 MySQL 啦,都往里面塞就是了 ..... 这题每个人答案应该都不一样,以下是我个人见解。 Block Storage 跟 Buffer 我不知道他想表达什麽,先 Skip QQ RDBMS 解决问题的方式是透过表格与关联,复杂的查询可以透过 JOIN 关联解决。 通常适用於大多数的使用情境,但需要定义固定 Schema 是一个考量点。 NoSQL 要视其使用的资料结构和分散式储存的策略来选择 严格说来某些 Cache (e.g. Redis) 甚至都可以算是一种 NoSQL 了 你需要储存简单的资料结构就可以塞在 Redis 你需要一个给我 JSON 内容我就可以塞进去的储存空间就可以用 MongoDB : Q: 前端怎麽知道 CRUD 瓶颈在哪? 最烂的答案:开发者工具,看哪一个 Request 吃掉最多秒数...... : Q: CRUD 的操作对象,不管是 RDBMS, NoSQL, Storage, Cache, : 瞬间流量冲进来怎麽处理?会遇到什麽问题? : Q: 线上的系统 CRUD 出问题了,怎麽知道哪里出问题? 就像连假高速公路塞车一样,一超出设计极限,哪边就会炸掉 这个时候就要找出系统的瓶颈点,试着去一个一个解决问题 首先你 Script 的执行实体够不够多?不够的话就会塞在最前面 这个时候的症状是你的 QPS (等待人数) 很多,但你的柜台开不够多所以塞住 这个时候就要打一个 Process Manager 让它 Spawn 好几个实体进去 如果柜台都开很多了,结果每一个柜台处理业务的时候都後台当住 这个时候就要思考 Storage 上是不是有瓶颈点 首先,在 DB 跟 Script 之间要不要做 Connection Pool 再来,你有没有优化资料库的 Query?哪些 Query 特别慢? EXPLAIN 出来发现哪里有问题?要怎麽打 Index 或着重新设计结构来优化? : Q: 当现有的架构要拆分的时候 (microservices),你的 CRUD 还是 CRUD? 我的猜测:严格说来还是 CRUD 只是本来单一架构中不同资料的互动,会变成不同微服务之间的沟通 : Q: 当系统是分散式的时候,CRUD ... 要怎麽办? 我不知道怎麽回答 QQ : Q: 你的 CRUD 考虑的是 ACID or BASE? 还是这啥? ACID 是传统 RDBMS 为了资料安全性做的保障 BASE 是 NoSQL 为了牺牲一部份保障换取更高效率或扩张性做的妥协 愿不愿意接受这个妥协要视服务本身的特性而定 如果你的资料量非常大,而且可以接受几微秒的资料不一致性,那 BASE 就可以了 : Q: 写十年的 CRUD 然後都做一样的事情?那中年一定失业。 : 但是可以处理瞬间百万 qps 的 CRUD,你中年一定很忙。 : 下一系列的 Q : Q: 哪里有百万 qps 的系统啊?qps 是啥? : Q: 当有的时候,你准备好了吗? : Q: 台湾没有百万的 qps 啊,国外有,你准备好了吗? : Q: golang 很屌,可处理百万 qps,是这样?node.js 不行?C# 不行? : Q: 买一台 2048 core 的机器就可以搞定了,需要说那麽多吗? ..... : .... 其实我觉得任何程式语言处理百万 QPS,技术上只要机器够大就可以 但是你了不了解这个程式语言的特性,它能做什麽,怎麽优化它 才是一个长期而且可能没有尽头的学问 如果你的框架很大,如何优化记忆体使用? 你的程式语言是编译的还是直译的?如果是直译,直译器有没有 JIT? 记忆体如何管理/需不需要 GC?如何侦测 Memory Leak? 这些问题的答案会随你用的程式语言跟框架而不同 而同样的机器可以应付多少 Request per sec 也随技术上花了多少力气而不同 --- 大概是这样,鞭小力一点 QQ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.168.79.225
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1527961025.A.BC9.html
1F:推 locklose: 推 06/03 01:42
2F:推 dsilver: 推 06/03 02:01
3F:推 vn509942: 感谢分享 06/03 02:21
4F:推 bheegrl: 推分享 06/03 07:30
5F:推 handwu: 推 06/03 08:57
6F:推 showken: 推 06/03 10:16
7F:推 lds74: 推分享 06/03 10:30
8F:推 APTON: 推 06/03 12:06
9F:推 devilkool: 感谢分享 06/03 13:01
10F:推 Ekmund: 虽说是最烂的答案 但前端有什麽更好用的手段吗QQ? 06/03 14:40
11F:推 accessdenied: 前端可以学一下Jmeter了解怎麽做压力测试和统计分析 06/03 14:49
12F:推 ripple0129: 分散式CRUD是啥,还是单一资料库吧,不然consistency 06/03 19:05
13F:→ ripple0129: 处理起来要人命吧。多资料库也是按照商业逻辑来拆分 06/03 19:05
14F:→ ripple0129: 关联性。 06/03 19:05
15F:推 akito117: 推 06/04 00:56
16F:→ free112136: 前端用jmeter做压力测试?小弟愚昧,还请accessdenied 06/04 09:15
17F:→ free112136: 演示一下用jemter测"前端"的"压力"测试 06/04 09:15
18F:→ alan3100: saga pattern 如何在分散式系统实现trans或部分rollback 06/04 13:22
19F:推 accessdenied: @free哥你是要测浏览器的压力还是测backend的压力? 06/04 16:40
20F:→ accessdenied: 这篇在说後端喔!如何从前端测後端CRUD的压力,中 06/04 16:40
21F:→ accessdenied: 文去念念好吗?找碴也不用秀阅读障碍吧? 06/04 16:40
22F:推 free112136: 你回文自己说前端,是你不会说话还是我有阅读障碍就 06/04 18:51
23F:→ free112136: 看各位看官的心理那把尺喽 06/04 18:51
24F:推 accessdenied: 文章是「前端怎麽知道CRUD的瓶颈」这句话你有阅读 06/04 20:05
25F:→ accessdenied: 障碍吧?CRUD会发生在前端吗?文章也讨论从Request 06/04 20:05
26F:→ accessdenied: time判断了,你阅读能力这麽差一定是歪国人 06/04 20:05
27F:→ accessdenied: Jmeter就是一个end to end从前端来观测後端效能的工 06/04 20:06
28F:→ accessdenied: 具,麻烦月领30K的不要出来丢脸好吗? 06/04 20:06
29F:→ accessdenied: 300万和30K之间没有沟通频率好吗! 06/04 20:07
30F:推 free112136: 300万原来是这样崩溃的…你继续吧! 06/04 20:22
31F:推 accessdenied: 你也继续领30K吧...... 06/05 08:33
32F:推 wanlinlin: 推 06/06 08:01







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping 或 站内搜寻

TOP