IBM Sterling Connect:Direct : Run Load Test on IBM Sterling Connect:Direct
The source code is on GitHub https://github.com/ebasso/ibm-sterling-b2b-cd-loadtest-with-jmeter
In this example i add the number of threads as 16. this is the same value in netmap.cfg parameter:
# Local Connect:Direct connection information local.node:\ :api.max.connects=16:\
Download CDJAI.jar from IBM fix Central
To run the load test will need to have CDJAI.jar to submit process
Compiling the java code
Change the variables in your java code to your environment
private static final String LOCALNODE = "<IP Address>"; private static final String LOCALNODEAPIPORT = "1363"; private static final String LOCALNODEUSERID = "cdadmin"; private static final String LOCALNODEPASSWORD = "< cd password>"; private static final String PROCESS_PATH = "sendfile.cdp"; private static final String SNODE = "< CDNODE (SNODE) >"; private static final String SOURCEFILE = "/home/cdadmin/cdunix/ndm/cfg/msgfile.cfg"; //Example private static final String DESTFILE = "/home/cdadmin02/cdunix/work/cddelete.me";
After change compile the java code:
javac -cp ./CDJAI.jar:. CDProcessRunner.java
Test your code using command:
java -cp ./CDJAI.jar:. CDProcessRunner
Creating the Load Test to Connect Direct
1) Create a new test plan "Test Plan"
- Name: CD Test Plan
2) Select the 'Test Plan' node and right click on it.
3) Hover over Add -> Topic (Users) -> Thread Group "Thread Group"
- Number of Threads (Users) = 16
- Ramp-up Period (seconds) = 1
- LoopCount = 5
4) Add a Sample > 'OS Process Sampler and specify connection settings:
- Command: /usr/sbin/java
- Working Directory: /home/ebasso/CDPerformanceLoader
On command parameters, click 'Add' to each line
- -cp
- ./CDJAI.jar:.
- CDProcessRunner
On Return Code Configuration:
- check the 'Check Return Code'
- Expected Return Code: '0'
5) Add to Listener > View Results Tree
6) Add to Listener > View Results in Table
7) Add to Listener > Summary Report
8) Run the test
Test write and read a file from NFS/SMB/Network Drivers
Create a 200 GB file
dd if=/dev/urandom of=/mylocaldisk/test bs=1M count=200k
Read Locally
dd if=/mylocaldisk/test of=/dev/null bs=1M 214748364800 bytes transferred in 249.877236 secs (859415480 bytes/sec)
Do the same for remote disk mounted
Create a 200 GB file
dd if=/dev/urandom of=/myremotedisk/test bs=1M count=200k
Read remote
dd if=/myremotedisk/test of=/dev/null bs=1M 214748364800 bytes (215 GB) copied, 740,928 s, 290 MB/s
You can use iperf3 to check from NFS/NAS server
# iperf3 -c <IP_FROM_NFS_SERVER> -t 300 -R ... [ ID] Interval Transfer Bandwidth [ 4] 0.00-284.69 sec 0.00 Bytes 0.00 bits/sec sender [ 4] 0.00-284.69 sec 328 GBytes 9.89 Gbits/sec receiver