Giter Club home page Giter Club logo

Comments (9)

yeasy avatar yeasy commented on May 16, 2024

Hi, can u help post the steps/env on how u make the evaluation?

Thanks!

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

software environment:
Ubuntu 14.04.5 x86-64
docker: 17.03.1-ce
fabric: 1.0-release

hardware environment
cpu: 4 core
memory: 8G
disk: 500G

OK, I follow the offical e2e demo deploy a fabric netwok. it has 2 org in the demo and include 2 ca, 1 order, 4 peers, 1 zookeeper, 1 kafa, 4 couchdbs and 1 cli .
because MVCC_READ_CONFICT error,I modify the offical chaincode example_cc.go, i add a set method, muti thread call set method will not trigger MVCC_READ_CONFICT error.
then I use fabric-sdk-java-1.0.0 send invoke transactions in muti threads to the fabric netwok.
100 threads everythings goes fine ,I got 10TPS reuslt . when on 1000 threads I got background error like below :
2017-08-01 16:41:02-[Eth] ERROR [pool-4-thread-377] Channel.sendTransaction(2172) | Channel mychannel unsuccessful sendTransaction to orderer
org.hyperledger.fabric.sdk.exception.TransactionException: Send transactions failed. Reason: timeout
at org.hyperledger.fabric.sdk.OrdererClient.sendTransaction(OrdererClient.java:163)
at org.hyperledger.fabric.sdk.Orderer.sendTransaction(Orderer.java:133)
at org.hyperledger.fabric.sdk.Channel.sendTransaction(Channel.java:2159)
at org.hyperledger.fabric.sdk.Channel.sendTransaction(Channel.java:2088)
at org.hyperledger.fabric.sdk.Channel.sendTransaction(Channel.java:2074)
at com.neusoft.fabric.junit.blo.ChainCodeService.invokeChainCode(ChainCodeService.java:163)
at com.neusoft.fabric.junit.testcase.SetMoneyCallable.invokeChainCode(SetMoneyCallable.java:93)
at com.neusoft.fabric.junit.testcase.SetMoneyCallable.call(SetMoneyCallable.java:60)
at com.neusoft.fabric.junit.testcase.SetMoneyCallable.call(SetMoneyCallable.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-08-01 16:41:02-[Eth] ERROR [pool-4-thread-377] SetMoneyCallable.invokeChainCode(101) | java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.Exception: Channel mychannel failed to place transaction 83b4d415f1590d1eb21a4e7644a748f659366208add5e58aa61129004c0b1739 on Orderer. Cause: UNSUCCESSFUL

docker-files.zip includes the detail of my testcase:
fabric-network:docker-files\linux-amd64\docker-compose-e2e.yaml
chaincode:docker-files\example_cc.go
testcase:docker-files\fabric-sdk-java-1.0.0\src\test\java\com\neusoft\fabric\junit\testcase
StepByStep.java createChannel,deployChaincode
PerformanceTestCase.java muti threads testCase

docker-files.zip

from blockchain_guide.

yeasy avatar yeasy commented on May 16, 2024

Is the cpu/mem high when u did the experiment?

I suspect u are running fabric and sdk at the same node, which will occupy too much memory.

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

I check the CUP/Memory cost, they are not high...when busy CPU: 80% of 1 core,Mem:60% of total.
[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:66,finishCount:30,errorCount:0
2017-08-02 14:00:02-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:112,finishCount:86,errorCount:0
2017-08-02 14:00:07-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:182,finishCount:136,errorCount:0
2017-08-02 14:00:12-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:277,finishCount:186,errorCount:0
2017-08-02 14:00:17-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:408,finishCount:236,errorCount:0
2017-08-02 14:00:22-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:500,finishCount:296,errorCount:0
2017-08-02 14:00:27-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:500,finishCount:356,errorCount:0
2017-08-02 14:00:32-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:500,finishCount:416,errorCount:0
2017-08-02 14:00:37-[Eth] WARN [Timer-0] TaskMonitor$1.run(23) | startCount:500,runningCount:500,endorserFinishCount:500,finishCount:486,errorCount:0
2017-08-02 14:00:37-[Eth] INFO [main] PerformanceTestCase.invokeChaincode(153) | 交易执行完毕,用户数:500,耗时:45518 ms,平均耗时:24590 ms,最大耗时:45177 ms,最小耗时:2585 ms,TPS:10.98

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

endorser is fast, send to order is very slow

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

@yeasy 您之前测试过Fabric1.0的性能吗?是什么样的结果?当时的硬软件配置是什么样的?

from blockchain_guide.

yeasy avatar yeasy commented on May 16, 2024

Can u try the official tool? fabric/test/tools/PTE.

There's some report with thousands of tps with concurrent config.

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

thank you for answer , I will try it later.

from blockchain_guide.

bigstar119 avatar bigstar119 commented on May 16, 2024

@yeasy can your share the report of PTE?

from blockchain_guide.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.