因磁盘IO性能低导致程序An I/O error 报错

文章目录

环境

系统平台:UOS(鲲鹏)

版本:4.5.8

症状

1、程序出现如下报错:

复制代码
1、An I/O error occurred while sending to the backend
2、JDBC rollback;This connection has been closed.;nested exception is
com.highgo.jdbc.util.PSQLException:This connection has beenclosed.

问题原因

1、经过了解,程序查询一张2000万的表,只要操作的人多了就会出现相关报错;

2、数据库运行在机械盘上,vmstat对服务器磁盘进行监控输出信息如下:

vmstat监控,b列等待I/O的阻塞进程数过多,考虑机械盘升级固态。

解决方案

1、与客户讨论提供如下解决方案

方案1:2千万的表进行拆表。

方案2:升级磁盘硬件配置

方案3:读写分离(提升多大,是否满足需求,有待验证)

2、客户决定采用升级磁盘硬件解决

3、测试新升级磁盘正常

01、fio随机写

复制代码
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/hgdata/testdir/fiotestfile -name=Rand_Write_Testing

02、fio随机读

复制代码
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/hgdata/testdir/fiotestfile -name=Rand_read_Testing

03、dd测速8kb读写

复制代码
写测速:
time dd if=/dev/zero of=output1.file bs=8k count=128000 oflag=direct,nonblock
读测速:
time dd if=output1.file of=/dev/null bs=8k count=128000 iflag=direct,nonblock

04、dd小文件写(不满足20MB/s磁盘性能不达标)

复制代码
dd if=/dev/zero of=/hgdata/testio1 bs=32k count=20k oflag=dsync

05、dd大文件写(不满足200MB/s磁盘性能不达标)

复制代码
dd if=/dev/zero of=/hgdata/testio2 bs=8192k count=100 oflag=dsync
相关推荐
ID_180079054734 小时前
淘宝店铺所有商品 API 接口:核心能力与数据返回参考
java·服务器·前端
RoboWizard4 小时前
DIY移动硬盘?2230能否堪大任!
数据库·人工智能·智能手机·性能优化·负载均衡
六月雨滴4 小时前
CDB/PDB 多租户存储架构(12c+)
数据库·oracle·dba
城数派4 小时前
1958-2024年全球4km分辨率逐月土壤湿度栅格数据
数据库·arcgis·信息可视化·excel
六月雨滴4 小时前
Oracle 存储体系架构概述
数据库·oracle
zt1985q4 小时前
本地部署开源数据库管理工具 DBeaver 并实现外部访问( Windows 版本)
运维·服务器·网络·数据库·网络协议
珂玥c4 小时前
新增硬盘有脏数据如何处理——ubuntu16.04
linux·数据库·ide
轻刀快马4 小时前
浅聊Java反射
java·开发语言
Gerardisite4 小时前
企业微信智能客服开发实战:API自动回复指南
java·开发语言·python·机器人·企业微信
网络工程小王4 小时前
【LangGraph 状态持久化(Checkpoint)详解】学习笔记
jvm·人工智能·笔记·langchain