22
33NS=1000000000
44
5- PID=$1
5+
6+ SCRIPT_NAME=$1
7+ PID=$( pgrep -f " $SCRIPT_NAME " )
68OUTPUT_FILE=$2
79DURATION=$3
810VERBOSE=${4:- 0}
@@ -21,9 +23,13 @@ log_verbose() {
2123}
2224
2325if [[ $OUTPUT_FILE == * " python3" * ]]; then
24- PYTHON_SWITCH=1
26+ TYPE=1
27+ elif [[ $OUTPUT_FILE == * " ncs.smp" * ]]; then
28+ TYPE=2
29+ elif [[ $OUTPUT_FILE == * " NcsJVMLauncher" * ]]; then
30+ TYPE=3
2531else
26- PYTHON_SWITCH=0
32+ TYPE=4
2733fi
2834
2935
@@ -36,7 +42,6 @@ mkdir -p "$OUTPUT_DIR"
3642for (( i= $STARTI ;i<= $DURATION ;i++ ))
3743do
3844 SIGNALBACK_FILE=" /tmp/signalback/nso_collect_start_signalback_$$ _$i "
39-
4045 # Wait for centralized controller signal
4146 if [ ! -z " $SIGNAL_FILE " ]; then
4247 log_verbose " Waiting for start signal..."
4752 Data=$( cat $SIGNAL_FILE 2> /dev/null || echo 12345678999999 )
4853 if [[ $Data -eq $i ]]; then
4954 break
50- log_verbose " Start signal received. Beginning data collection for PID $PID ..."
55+ log_verbose " Start signal received. Beginning data collection for PID $SCRIPT_NAME ..."
5156 else
5257 sleep 0.1
5358 fi
5964 else
6065 echo " SIGNAL_FILE Parameter not provided"
6166 fi
62-
67+
6368 # rm -f $SIGNALBACK_FILE
6469 # Tick!
70+ if [[ $TYPE -eq 1 ]]; then
71+ PID=$( pgrep -f " ./logs/ncs-python-vm -i $SCRIPT_NAME " ) #
72+ elif [[ $TYPE -eq 2 ]]; then
73+ PID=$( pgrep -f " \.smp.*-ncs true" ) # ./logs/ncs-python-vm -i
74+ elif [[ $TYPE -eq 3 ]]; then
75+ PID=$( pgrep -f " com.tailf.ncs.NcsJVMLauncher" ) # ./logs/ncs-python-vm -i
76+ else
77+ PID=$( pgrep -f " $SCRIPT_NAME " ) # ./logs/ncs-python-vm -i
78+ fi
79+
80+ # echo $PID" "$SCRIPT_NAME" "$PYTHON_SWITCH" "$OUTPUT_FILE
6581 ALO_TOTAL=$( cat /proc/meminfo | grep ' Committed_AS' | awk -F' ' ' {print $2}' )
6682 Limit=$( cat /proc/meminfo | grep ' CommitLimit' | awk -F' ' ' {print $2}' )
67-
6883 TIME=$( date +%T)
69-
70- log_verbose " Monitoring PID: $PID "
71- ALO_PID=$( pmap -d $PID | grep " writeable/private" | awk -F' ' ' {print $4}' | egrep -o ' [0-9.]+' )
72- PHY=$( cat /proc/$PID /status 2> /dev/null || echo " " | grep VmRSS | awk -F' ' ' {print $2}' )
73-
74- if [ ! -z " $ALO_PID " ] && [ ! -z " $PHY " ]; then
75- echo $TIME " " $PHY " " $ALO_PID " " $ALO_TOTAL " " $Limit >> " $OUTPUT_FILE "
76- log_verbose " $i second is collected to $OUTPUT_FILE "
84+ if [ ! -z " $PID " ]; then
85+ log_verbose " Monitoring PID: $PID "
86+ ALO_PID=$( pmap -d $PID | grep " writeable/private" | awk -F' ' ' {print $4}' | egrep -o ' [0-9.]+' )
87+ PHY=$( cat /proc/$PID /status 2> /dev/null | grep VmRSS | awk -F' ' ' {print $2}' )
88+ # echo $ALO_PID
89+
90+ if [ ! -z " $ALO_PID " ] && [ ! -z " $PHY " ]; then
91+ echo $TIME " " $PHY " " $ALO_PID " " $ALO_TOTAL " " $Limit $PID >> " $OUTPUT_FILE "
92+ log_verbose " $i second is collected to $OUTPUT_FILE "
93+ else
94+ echo $TIME " " 0" " 0" " $ALO_TOTAL " " $Limit >> " $OUTPUT_FILE "
95+ log_verbose " $i second is collected to $OUTPUT_FILE "
96+ fi
7797 else
78- echo $TIME " " 0" " 0" " $ALO_TOTAL " " $Limit >> " $OUTPUT_FILE "
98+ echo $TIME " " 0" " 0" " $ALO_TOTAL " " $Limit >> " $OUTPUT_FILE "
7999 log_verbose " $i second is collected to $OUTPUT_FILE "
80100 fi
81101 touch $SIGNALBACK_FILE
82102
103+ ALO_PID=" "
104+ PHY=" "
105+ unset PID
106+
83107
84108 done
85109
0 commit comments