update perf test script
This commit is contained in:
parent
8ebd171ee0
commit
b827b694be
|
@ -18,3 +18,5 @@ cd $1/debug
|
||||||
make -j 4
|
make -j 4
|
||||||
cd $1/debug
|
cd $1/debug
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
systemctl start taosd
|
||||||
|
|
|
@ -19,8 +19,7 @@ class BuildTDengine:
|
||||||
except FileNotFoundError as e:
|
except FileNotFoundError as e:
|
||||||
print(f"File not found: {e}")
|
print(f"File not found: {e}")
|
||||||
|
|
||||||
def get_commit_id(self):
|
def get_cmd_output(self, cmd):
|
||||||
cmd = f"cd {self.path} && git rev-parse --short @ "
|
|
||||||
try:
|
try:
|
||||||
# Run the Bash command and capture the output
|
# Run the Bash command and capture the output
|
||||||
result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True, text=True)
|
result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True, text=True)
|
||||||
|
@ -30,7 +29,4 @@ class BuildTDengine:
|
||||||
|
|
||||||
return output.strip()
|
return output.strip()
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"Error running Bash command: {e}")
|
print(f"Error running Bash command: {e}")
|
||||||
|
|
||||||
bd = BuildTDengine()
|
|
||||||
print(bd.get_commit_id())
|
|
|
@ -1,15 +1,26 @@
|
||||||
import os
|
import os
|
||||||
|
import socket
|
||||||
import mysqldb
|
import mysqldb
|
||||||
import insert_json
|
import insert_json
|
||||||
import query_json
|
import query_json
|
||||||
|
import buildTD
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
# Build TDengine
|
||||||
|
hostname = socket.gethostname()
|
||||||
|
new_build = buildTD.BuildTDengine(host = hostname)
|
||||||
|
|
||||||
|
new_build.build()
|
||||||
|
cmd = f"cd {new_build.path} && git rev-parse --short @ "
|
||||||
|
commit_id = new_build.get_cmd_output(cmd)
|
||||||
|
branch = new_build.branch
|
||||||
|
|
||||||
num_of_tables = 10000
|
num_of_tables = 10000
|
||||||
records_per_table = 10000
|
records_per_table = 10000
|
||||||
interlace_rows = 0
|
interlace_rows = 0
|
||||||
stt_trigger = 1
|
stt_trigger = 1
|
||||||
|
|
||||||
|
# get scenario id
|
||||||
db = mysqldb.MySQLDatabase()
|
db = mysqldb.MySQLDatabase()
|
||||||
db.connect()
|
db.connect()
|
||||||
sql = f"select id from scenarios where num_of_tables = {num_of_tables} and records_per_table = {records_per_table} and interlace_rows = {interlace_rows} and stt_trigger = {stt_trigger}"
|
sql = f"select id from scenarios where num_of_tables = {num_of_tables} and records_per_table = {records_per_table} and interlace_rows = {interlace_rows} and stt_trigger = {stt_trigger}"
|
||||||
|
@ -17,13 +28,48 @@ if __name__ == "__main__":
|
||||||
if row is None:
|
if row is None:
|
||||||
id = db.get_id(f"insert into scenarios(num_of_tables, records_per_table, interlace_rows, stt_trigger) values({num_of_tables},{records_per_table}, {interlace_rows}, {stt_trigger})")
|
id = db.get_id(f"insert into scenarios(num_of_tables, records_per_table, interlace_rows, stt_trigger) values({num_of_tables},{records_per_table}, {interlace_rows}, {stt_trigger})")
|
||||||
else:
|
else:
|
||||||
id = row[0][0]
|
id = row[0][0]
|
||||||
|
|
||||||
print(id)
|
|
||||||
|
|
||||||
db.disconnect()
|
print(f"scenario id is {id}")
|
||||||
|
|
||||||
|
# record insert performance data
|
||||||
insert = insert_json.InsertJson(num_of_tables, records_per_table, interlace_rows, stt_trigger)
|
insert = insert_json.InsertJson(num_of_tables, records_per_table, interlace_rows, stt_trigger)
|
||||||
os.system(f"taosBenchmark -f {insert.create_insert_file()}")
|
os.system(f"taosBenchmark -f {insert.create_insert_file()}")
|
||||||
|
|
||||||
|
cmd = "grep Spent /tmp/insert_res.txt | tail -1 | awk {'print $5'}"
|
||||||
|
time = new_build.get_cmd_output(cmd)
|
||||||
|
|
||||||
|
cmd = "grep Spent /tmp/insert_res.txt | tail -1 | awk {'print $16'}"
|
||||||
|
speed = new_build.get_cmd_output(cmd)
|
||||||
|
|
||||||
|
sql = f"insert into insert_perf(sid, time_cost, records_per_sec, branch, commit_id, date) values({id}, {time}, {speed}, '{branch}', '{commit_id}', now())"
|
||||||
|
print(sql)
|
||||||
|
db.execute(sql)
|
||||||
|
|
||||||
|
# record query performance data
|
||||||
|
sql = "select * from queries"
|
||||||
|
res = db.query(sql)
|
||||||
|
for row in res:
|
||||||
|
json = query_json.QueryJson(row[1], query_times=1)
|
||||||
|
print(f"query: {row[1]}")
|
||||||
|
os.system(f"taosBenchmark -f {json.create_query_file()} > /tmp/{row[0]}.txt")
|
||||||
|
cmd = "grep delay /tmp/%d.txt | awk {'print $11'} | cut -d 's' -f 1" % row[0]
|
||||||
|
print(f"cmd is {cmd}")
|
||||||
|
avg = new_build.get_cmd_output(cmd)
|
||||||
|
print(f"avg is {avg}")
|
||||||
|
if (avg == ""):
|
||||||
|
break
|
||||||
|
|
||||||
|
sql = f"insert into query_perf(sid, qid, time_cost, branch, commit_id, date) values({id}, {row[0]}, {avg}, '{branch}', '{commit_id}', now())"
|
||||||
|
print(sql)
|
||||||
|
db.execute(sql)
|
||||||
|
|
||||||
|
# close connection
|
||||||
|
db.disconnect()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue