performance - 为什么在继续使用 jdbc 插入一行后在 oracle11g 中它变得很慢
问题描述
我编写了一个代码来测试 oracle11g 中单行插入的性能。但是发现几分钟后延迟会变慢。
测试方式是写一个单线程,用jdbc插入一行记录(数据大小1K+)循环。并将插入速度控制在 200 tps
我想要稳定的表现
但实际结果并非如此,一开始延迟是0.9ms+,还不错,几分钟后延迟到了4~5ms,性能太差了。
详情如下:
测试环境:
Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
memory size: 64G
SSD
在延迟=0.9ms+ 时,iostat
iostat -mx 1
avg-cpu: %user %nice %system %iowait %steal %idle
9.67 0.00 0.75 1.00 0.00 88.57
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 1.00 0.00 447.00 0.00 2.70 12.35 0.12 0.27 0.00 0.27 0.26 11.40
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 448.00 0.00 2.70 12.32 0.12 0.27 0.00 0.27 0.25 11.30
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
在latency=4~5ms,iostat
iostat -mx 1
avg-cpu: %user %nice %system %iowait %steal %idle
9.36 0.00 0.84 4.85 0.00 84.95
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 400.00 0.00 0.80 4.10 0.59 1.47 0.00 1.47 1.47 58.80
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 400.00 0.00 0.80 4.10 0.59 1.47 0.00 1.47 1.47 58.80
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
解决方案
推荐阅读
- php - MYSQL 选择查询给出重复列表
- python - 如果我更改文本内容,为什么 wxpython 中的文本只显示一半
- javascript - threejs webgl着色器无法编译
- javascript - Angular 将 es6 代理注册为服务
- python - 如何在 django 视图中从 S3 下载文件?
- javascript - 从 postgres 获得对 sequelize findall 的空响应
- github - Github 无法按应有的方式预览 Markdown
- python - 使用自定义格式并且不要在 qplaintextedit 中选择完整的文本
- tags - GCP Cloud Build 标签发布
- php - 在 Woocommerce 中添加自定义列以显示订单类别