获取异常I/O使用情况Postgresql和JBD2
我目前正在使用EBS卷处理AWS上的一个EC2实例,我收到了一个警报,因为即使服务器处于空闲状态,我也会不断消耗I/O iotop命令显示:获取异常I/O使用情况Postgresql和JBD2,postgresql,amazon-web-services,io,amazon-ec2,ext4,Postgresql,Amazon Web Services,Io,Amazon Ec2,Ext4,我目前正在使用EBS卷处理AWS上的一个EC2实例,我收到了一个警报,因为即使服务器处于空闲状态,我也会不断消耗I/O iotop命令显示: TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND 160 be/3 root 0.00 B 27.58 M 0.00 % 0.06 % [jbd2/xvda1-8] 10016 be/4 root 0.00 B
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
160 be/3 root 0.00 B 27.58 M 0.00 % 0.06 % [jbd2/xvda1-8]
10016 be/4 root 0.00 B 0.00 B 0.00 % 0.00 % [flush-202:1]
10014 be/4 postgres 0.00 B 947.35 M 0.00 % 0.00 % postgres: stats collector process
534 be/4 root 0.00 B 136.00 K 0.00 % 0.00 % dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0
postgresql使用postgis扩展运行,数据库几乎是空的,所以我真的不知道为什么它一直在收集统计数据,有时还有一个postgres写过程。
另一件事是Jbd2(ext4日志)进程,它也经常使用I/O,最好的答案是,如果您可以使用另一个卷将日志移动到另一个卷上。在这种情况下,EXT4可以看到更好的吞吐量 可能发生的情况是,您有一个小型数据库,处于某种程度的一般负载下,并且autovacuum正在后台运行。Autovacuum将分析使用过的表,并定期将数据写入统计表
如果负载较低,您也可以调整自动真空设置以避免出现问题。您使用的是哪个版本的postgresql?您在postgresql server中运行了多少个数据库,有多少个对象?你的pg_stat_tmp目录(postgresql数据目录下)中有什么?Postgres版本是9.1,我只有一个非常小的DB。我解决了将pg_stat_目录移动到ramdisk的部分问题