为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:TIDB3.0.5
- 【问题描述】:应用接入的时候 CPU负载很高
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。
(1)、chrome 安装这个插件https://chrome.google.com/webstore/detail/full-page-screen-capture/fdpohaocaechififmbbbbbknoalclacl
(2)、鼠标焦点置于 Dashboard 上,按 ?可显示所有快捷键,先按 d 再按 E 可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成。
(3)、使用这个 full-page-screen-capture 插件进行截屏保存
1.再和您确认下,是 tidb-server 高吗? 看监控有一个tikv比较高,其他整体cpu到50%,但是无法分辨是哪个主机
2.应用接入时,执行 top 命令,占用 cpu 最多的是 tidb-server 进程吗?
tidb的监控没有反馈。
看日志只有一些write conflict,但是没有具体的sql执行命令? 截取的日志是应用运行阶段吗?麻烦也反馈下业务sql,多谢
占用最高的是tidb-server
代码如下
/**
* 批量oltp
* @param batchSize
* @return
*/
@Transactional
public List batchOltp(int batchSize) {
List list = new ArrayList();
for (int i = 0; i < batchSize; i++) {
OrderCertInfoModel orderCertInfoModel = geneOrderCertInfoModel();
orderCertInfoRepository.insert(orderCertInfoModel);
LoggerFormatUtil.info(log, "insert success,id={0}", orderCertInfoModel.getId());
orderCertInfoModel.getExtendField().put("hello", "world");
orderCertInfoRepository.updateById(orderCertInfoModel);
list.add(orderCertInfoRepository.selectById(orderCertInfoModel.getId()));
}
return list;
}
模型如果改成批量3条负载不高,改高批量5条插入就很慢
你好,
请问下当前程序并发设置多少? 3 → 5 可能是快要一倍的压测增长
看 qps 达到 8w+ 还是很高的,tidb-server 负载高也是正常。
你好,现在的问题不是负载高而是插入慢吗?有没有大致的数据?(CPU 以及 QPS 的对比) 另外从上面给的监控上来看,tikv 之间的 CPU 负载不太均衡,麻烦提供一下 tikv-trouble-shooting 这个面板的监控截图。