在AWS EC2环境中尝试Hyperledger Fabric PoC时遇到一些问题。
我的网络建立了3个组织,3个对等点(每个对等点1个),2个订购者,4个kafka,3个动物园管理员。 每个组织都位于不同的实例中,Ordering + Kafka + Zookeeper共享同一实例。 我还在另一个实例上使用Node SDK 1.2。
在我尝试从另一个实例使用Artillery进行性能测试之前,一切似乎都工作正常。 首先,当我尝试使用多个同时进行的用户(大约50个)进行测试时,无法获得高吞吐量,网络似乎崩溃了。大炮的图形显示性能不稳定,然后完全消失。
现在是第二个也是最重要的一点,当我将负载降低到5个同时用户时,性能问题消失了,但我注意到在订购服务的实例不久之后,Kafka和Zk 磁盘空间不足。我做了一些研究,发现我的/ var / lib / docker / overlay2目录下有大量数据。
在一些较大的容器中,我找到了一个包含1gb .log文件的kafka-logs目录。我设法制作了纳米纸,并且显示了以下证书
BEGIN证书
[...]
结束证书 重复
它正在以1gb的速度拆分文件并存储其中的许多文件,例如30分钟内达到3Gb。
我尝试在自己的撰写以及daemon.json中使用Docker日志轮换:
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "3"
它实际上适用于目录/ var / lib / docker / containers,其中.log文件限制为1Mb,最大3个文件。但是overlay2的问题仍然存在。
我的kafka泊坞窗作曲家:
kafka:
image: hyperledger/fabric-kafka:0.4.10
restart: always
environment:
- KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0.example.com:2181,zookeeper1.example.com:2181,zookeeper2.example.com:2181
- log.retention.bytes = 1000000
- log.retention.ms = 30000
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "3"
如您所见,我也尝试过log.retention.bytes = 1000000,但是我不确定这是对参数的正确用法,因为它没有任何作用。
还重新启动了docker服务。我已经为此苦了一个星期,所以我已经尝试了在线上找到的最常见的解决方案。
有什么想法吗?
预先感谢