Revision 3293
Added by Jing Tao over 17 years ago
bin/measure-metacat-query-performance2.sh | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
#Call a java client class to query metacat automatically and metacat server |
|
3 |
#will record the performance data into a file. This script will be put in /etc/init.d directory |
|
4 |
#and called in system booting. After script is down, it will call reboot system too. |
|
5 |
#So every time to excecute the quyer, memory will be in fresh. |
|
6 |
#Note: before running the script, user should run both "ant jar" and "ant clientjar" |
|
7 |
#in Metacat to get metaca-client.jar and metacat.jar in build directory. |
|
8 |
|
|
9 |
#variables |
|
10 |
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar |
|
11 |
PROJECT=/home/tao/project/metacat |
|
12 |
METACAT=$PROJECT/build/metacat.jar |
|
13 |
METACAT_CLIENT=$PROJECT/build/metacat-client.jar |
|
14 |
UTILITIES=$PROJECT/lib/utilities.jar |
|
15 |
METACATURL=http://chico.dyndns.org:8081/knb/metacat |
|
16 |
QUERY=$PROJECT/test/performance_measure_query |
|
17 |
TIMEFILE=$PROJECT/test/times |
|
18 |
TOMCATUSER=tao |
|
19 |
|
|
20 |
#copy the java client to build directory |
|
21 |
rm -rf $PROJECT/build/tests/ |
|
22 |
mkdir $PROJECT/build/tests |
|
23 |
mkdir $PROJECT/build/tests/edu |
|
24 |
mkdir $PROJECT/build/tests/edu/ucsb |
|
25 |
mkdir $PROJECT/build/tests/edu/ucsb/nceas |
|
26 |
mkdir $PROJECT/build/tests/edu/ucsb/nceas/metacattest |
|
27 |
cp $PROJECT/test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java $PROJECT/build/tests/edu/ucsb/nceas/metacattest/. |
|
28 |
|
|
29 |
#compile the class |
|
30 |
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES $PROJECT/build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java |
|
31 |
|
|
32 |
|
|
33 |
case "$1" in |
|
34 |
start) |
|
35 |
echo "Starting running query script" |
|
36 |
#Iterate to restart postgres and tomcat, and call java client class |
|
37 |
TIMES=`cat $TIMEFILE` |
|
38 |
echo "The value from TIMEFILE is $TIMES" |
|
39 |
#if times greater than 0, it will query the metacat |
|
40 |
if [ $TIMES -gt 0 ] |
|
41 |
then |
|
42 |
#Check if postgres start successfully |
|
43 |
successPQL=false; |
|
44 |
while [ $successPQL = false ] |
|
45 |
do |
|
46 |
#if found netstat command has posgres lisenter is ready, |
|
47 |
#reset the success value to jump the while loop. |
|
48 |
for fn in `netstat -plt | grep postgres` |
|
49 |
do |
|
50 |
#reset success value |
|
51 |
successPQL=true |
|
52 |
done |
|
53 |
done |
|
54 |
echo "success value for starting postgres is $successPQL" |
|
55 |
#Check if tomcat start successfully |
|
56 |
successStart=false; |
|
57 |
while [ $successStart = false ] |
|
58 |
do |
|
59 |
#if found netstat command has tcomat lisenter (port 8005) is ready, |
|
60 |
#reset the success value to jump the while loop. |
|
61 |
for fn in `netstat -plt | grep 8005` |
|
62 |
do |
|
63 |
#reset success value |
|
64 |
successStart=true |
|
65 |
done |
|
66 |
done |
|
67 |
echo "success value for starting tomcat is $successStart" |
|
68 |
#run the class -- query the remote metacat |
|
69 |
java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:$PROJECT/build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY |
|
70 |
echo "Successfully query the metacat" |
|
71 |
#Drecease 1 from value of TIMES |
|
72 |
TIMES=`expr $TIMES - 1` |
|
73 |
echo "The new TIMES value is $TIMES" |
|
74 |
#write the new TIMES to the file |
|
75 |
echo $TIMES >$TIMEFILE |
|
76 |
#reboot machine |
|
77 |
reboot |
|
78 |
fi |
|
79 |
;; |
|
80 |
stop) |
|
81 |
echo "Stopping running query script - do nothing" |
|
82 |
;; |
|
83 |
*) |
|
84 |
echo "Usage: /etc/init.d/blah {start|stop}" |
|
85 |
exit 1 |
|
86 |
;; |
|
87 |
esac |
|
88 |
|
|
89 |
exit 0 |
|
90 |
|
|
0 | 91 |
Also available in: Unified diff
New script which will reboot the system after query. So this will keep memory usuage same.