我在AWS EC2环境中尝试使用Hyperledger Fabric PoC时遇到了一些问题。
我的网络设置有3个组织,3个对等点(每个1个对等点),2个订购者,4个卡夫卡,3个动物园管理员。每个组织位于不同的实例中,Ordering + Kafka + Zookeeper共享同一个实例。我也在不同的实例上使用Node SDK 1.2。
在我尝试使用另一个实例的炮兵进行性能测试之前,一切似乎都运转良好。首先,当我尝试与许多同时用户(大约50个)进行测试时,我无法获得高吞吐量性能,网络似乎崩溃了。炮兵的图形表现出不稳定的表现,然后完全死亡。
现在第二个也是最重要的,当我将负载降低到5个并发用户时,性能问题就消失了,但我注意到在短时间内使用Ordering服务的实例,Kafka和Zk的磁盘空间不足。我做了一些研究,发现我/ var / lib / docker / overlay2目录下有大量数据。
在一些较大的容器中,我找到了一个带有1GB .log文件的kafka-logs目录。我设法纳米一个,它显示了一些证书如下
开始证书
[...]
END CERTIFICATE重复
它将文件分成1gb并存储其中的许多文件,比如说30分钟就可以说3Gb了。
我尝试在我的compose和daemon.json中使用docker log rotate:
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,但我不确定params的正确用法,因为它没有任何效果。
还重启了docker服务。我一直在努力这一周,所以我已经尝试过我在网上找到的最常见的解决方案。
有任何想法吗?
提前致谢
配置参数应为:
KAFKA_LOG_RETENTION_BYTES=1000000
KAFKA_LOG_RETENTION_MS=30000
请参阅fabric-test kafka.yaml:
https://github.com/hyperledger/fabric-test/blob/master/feature-upgrade/dc-orderer-kafka-base.yml