并非是商业生产环境,只是小环境测试,没钱来换服务器升级,
一下子很多短链接并发来,都是 INSERT,一下子 MySQL 响应就慢了,看到 Threads_connected 上到了 800,然后就缓不过来一阵子,最后是发出 INSERT 的程序蹦掉了。
MySQL 是否有不折腾,让这些并发量大的 INSERT 做个 cache,缓着先,跟着适合的节奏慢慢写?
并非是商业生产环境,只是小环境测试,没钱来换服务器升级,
一下子很多短链接并发来,都是 INSERT,一下子 MySQL 响应就慢了,看到 Threads_connected 上到了 800,然后就缓不过来一阵子,最后是发出 INSERT 的程序蹦掉了。
MySQL 是否有不折腾,让这些并发量大的 INSERT 做个 cache,缓着先,跟着适合的节奏慢慢写?
|
xuanbgOct 14, 2020
1
没有,但大家都用消息队列削峰去谷。
|
|
1018jiOct 14, 2020
2
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] 这些参数试试
|
|
arthurblakeOct 14, 2020
3
可否在发出 INSERT 的程序端做一下缓存。
|
|
BBCCBBOct 14, 2020
4
放消息队列然后批量消费批量 insert.
|
|
5
不过你们 tps 多少呀 之前我基准测试了下一台 4v16g 的随机读写 64 线程 tps 能到 2000+
|
|
yuudachiPoiOct 14, 2020
6
消息队列。
|
|
lbp0200Oct 14, 2020 via iPhone
7
如果是 PHP 的话,就是 800 个进程,一个进程 10 兆,需要 8G 内存
|
|
fredccOct 14, 2020
8
插入锁表了么,上有序队列成本不低啊
|
|
dorothyRENOct 14, 2020
9
要不借你个数据库做测试?
|
|
onepunchOct 14, 2020
10
你的系统怕不是有慢查询吧
|
|
JoooooooooOct 14, 2020
11
写入的地方慢一点呗
|
|
jones2000Oct 14, 2020
12
写一个数据库写入的 api, 所有数库写入都调用这个 api 写入, 不要直接连接数据库写入了。
|
|
simple2025Oct 15, 2020 via Android
13
@lbp0200 php 内存这么低?我现在的 py 进程一个 50m,这还是我去掉 jinja2 cache 的结果
|
|
jorneyrOct 15, 2020
14
加个 Nginx,设置相应 API 的 QPS 限制就好了。
|
|
zhangysh1995Oct 15, 2020
16
二楼 +1 票 @1018ji
|
|
haosamaxOct 15, 2020
17
#4 批量插吧
|
|
gaiusOct 15, 2020 via Android
18
不怕丢数据就内存队列,批量插
|