今天发现一台线上 8 核 16G 机器 mysql 机器平均一直有 6-8 个线程在处于 running 数据不多应该都能命中 bufferpool 看了下 cpu 使用率 6%-10%左右 想了下 cpu 应该是挂起在等内存返回数据所以说使用率很低 这样理解对吗
今天发现一台线上 8 核 16G 机器 mysql 机器平均一直有 6-8 个线程在处于 running 数据不多应该都能命中 bufferpool 看了下 cpu 使用率 6%-10%左右 想了下 cpu 应该是挂起在等内存返回数据所以说使用率很低 这样理解对吗
|
23571113Nov 2, 2020
1
parser sql 和查询优化之类的还是很耗 cpu 的。
|
|
littlewingNov 2, 2020 via iPhone
2
sql 解析
执行计划 内存拷贝 |
|
3
@23571113 这个是有一定消耗 但是像 mov 指令等待内存返回数据会让出 cpu 去执行别的吗 [之前我以为对上层是占用] 不然 cpu 使用率应该在 800%了
|
|
5
@vk42 那这样理解和我最初想法一样 8 个线程满载 那岂不是说 cpu 使用率很高,和现在数据不一样呀 还是说因为双 1 落盘 io 导致的 。如果非双 1cpu 会上去吗
|
|
vk42Nov 3, 2020
6
@XDJI 因为瓶颈在别的地方啊,redis 和 mysql 的话大量开销应该是在监听和处理网络 I/O 这里。要想读写内存跑满 CPU 你可以直接写 8 个进程全做 memcpy……
|
|
DoctorCatNov 3, 2020
7
感觉要全局看这问题,要具体看系统进程调度策略的,因为内核抢占、cpu 亲和性、时间记账和队列优先级都会影响到你这 CPU 使用率的统计
|
|
6ufq0VLZn0DDkL80Nov 3, 2020
8
perf 一下不就知道了,你咋知道来 V2EX 上能问到正确结果呢
|