Jdbc poor performance
- Dominant language
- Java
- Stars
- 9.5k
- Forks
- 2.3k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 5
Description
**feng** ([Bug 66050](https://bz.apache.org/bugzilla//show_bug.cgi?id=66050&redirect=false)):
Hi,
I am testing a database called dolphindb with jmeter.I start 100threads for 2 server.The testing result was: throughput 6.9/sec .
The sql query like this :
select timestamp,value from ... where system_code = 'system_1882' and device_id = 'device_4' and metric = 'metric_9' and timestamp >= 2021.05.01T00:00:00.000 and timestamp <= 2021.05.31T23:59:59.999
But i write a program with same dolphindb_jdbc.jar to test, same 100 threads, same testing for 1minute, same servers , i got at least 1000 query per thread .
I don't know why the difference so big .
I collect some infomation and try some methods ,still didnt work.
1.
Jmeter run in single mode .Running on a Linux server.
This server has 3 network cards. One can reach 10000Mb/s, the others only for 1000Mb/s .
At first ,i thought the jmeter use the wrong network cards.So here is my effort:
modify jmeter:
add : rmi_host="-Djava.rmi.server.hostname=192.192.168.1"
then modify : ARGS="$JAVA9_OPTS $SERVER $DUMP $HEAP $VERBOSE_GC $GC_ALGO $SYSTEM_PROPS $JMETER_LANGUAGE $RUN_IN_DOCKER $rmi_host"
modify jmeter.properties:
remote_hosts=192.192.168.1
【192.192.168.1 is Intranet address】
modify system.properties:
add :java.rmi.server.hostname=192.192.168.1
Didn't work.Then i testing with my program , observe with command dstat (which can Monitor the overall performance of the server) .
I got the max recv 250MB/s . but with Jmeter , sometimes the net recv reachs 140Mb/s, most time less then 10mb/s .
Then it reminds me :
The server needs to go through vpn to connect to the external network, and the speed is the max 10mb/s .
And i used external net to access my server and run jmeter.
But i already modify the host,did i miss something ?
2.
I chaned the query sql ,new sql like:
select min(value) from ... where system_code = 'system_1882' and device_id = 'device_4' and metric = 'metric_9' and timestamp >= 2021.05.01T00:00:00.000 and timestamp <= 2021.05.31T23:59:59.999
It returns less rows than previous sql .Well,the tesing results are very good : throughput 3000/sec .
I modify the dolphin_jdbc.jar ,debuging the query time.
Well ,the testing results shows ,for different sql, the query time is similar.
So i don't think it's the dolphin_jdbc.jar problem , so i thought it might be there was some problems getting too much results .
So i disable the results tree in jmeter , and modify jmeter.properties:
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.successful=false
Still didn't work.
I have already done my best and i'm desperate.Hope to get some help.
By the way , i'm praticing english , hope my description is accurate
Created attachment [Java_Formal.jmx](https://apache.github.io/jmeter-bugzilla-attachments/50/66050/38274/Java_Formal.jmx): jmx_file
Severity: blocker
OS: Linux
Contributor guide
Assessment
This issue has not been assessed yet.