#!/bin/sh ALL_SERVER=" media_server_app extern_device_app stp_server_app tcp_server_app web_server_app onvif_server_app xtp_push_app bus_server_app system_server_app batch_server_app gb28181_app rtmp_service_app mqtt_controlled_app record_server_ng_app custom_server_app" printname() { printf "%-20s,%-10s,%-10s,%-10s,%-10s,%-10s\n" "ProcName" "Threads" "VmRSS" "RssAnon" "RssFile" "RssShmem" return 0 } RSize=0 VSize=0 PSize=0 printvalue() { RSS_CNT=0 RSS_ANON_CNT=0 RSS_FILE_CNT=0 cd /proc for ecpt in $ALL_SERVER do allprocid=`ps | grep $ecpt | grep -v '/bin/sh' | grep -v 'grep' | awk '{print $1}'` for procid in $allprocid do Threads=`cat $procid/status|grep 'Threads'|awk '{print $2}'` VmRSS=`cat $procid/status|grep 'VmRSS'|awk '{print $2}'` RSS_CNT=$(($RSS_CNT + $VmRSS)) RssAnon=`cat $procid/status|grep 'RssAnon'|awk '{print $2}'` RSS_ANON_CNT=$(($RSS_ANON_CNT + $RssAnon)) RssFile=`cat $procid/status|grep 'RssFile'|awk '{print $2}'` RSS_FILE_CNT=$(($RSS_FILE_CNT + $RssFile)) RssShmem=`cat $procid/status|grep 'RssShmem'|awk '{print $2}'` printf "%-20s,%-10u,%-10u,%-10u,%-10u,%-10u\n" $ecpt $Threads $VmRSS $RssAnon $RssFile $RssShmem done done printf "RSS_CNT=%-10u, RSS_ANON_CNT=%-10u,RSS_FILE_CNT=%-10u\n" $RSS_CNT $RSS_ANON_CNT $RSS_FILE_CNT return 0 } printinfo() { date "+%G-%m-%d %H:%M:%S" printname printvalue } while (true) do top -n 1 printinfo sleep 5 done