在AWS/EBS实例中,Docker-compose中的blkio设备写入操作(device_write_iops)可能不起作用的原因可能是由于EBS卷的类型不支持IOPS限制。默认情况下,EBS卷使用gp2类型,该类型不支持IOPS限制。
要解决此问题,您可以更改EBS卷的类型为io1,并设置IOPS限制。下面是一个示例解决方法的代码:
version: '3'
services:
my_service:
build: .
volumes:
- my_volume:/data
volumes:
my_volume:
driver_opts:
type: "io1"
iops: 1000
size: 100
在上面的示例中,我们将EBS卷的类型更改为io1,并设置了1000的IOPS限制和100GB的大小。您可以根据自己的需求进行适当的更改。
请确保您的AWS/EBS实例具有足够的权限来设置IOPS限制。您可以通过为IAM角色分配适当的权限来实现。
请注意,这只是一个示例解决方法,具体的解决方法可能因您的环境和需求而有所不同。确保仔细阅读相关文档并根据您的具体情况进行调整。