linux 根據記憶體使用量自動重啟服務的指令碼

2021-07-31 13:45:58 字數 957 閱讀 1988

因tomcat經常記憶體占用比較大造成當機,所以寫了個指令碼當tomcat使用的記憶體到一定比率時就自動重啟它;設定為10分鐘執行一次。

[code]

#!/bin/sh

#允許最大占用記憶體的百分比

ram_max=45

#服務程式所守候的埠

port=8180

#通過守候埠獲取服務程式的pid

pid_ram=` netstat -nlp |grep $port|awk ''|awk -f / '' `

#通過服務程式的pid獲取當前占用的記憶體百分比

ram=` ps -aux |grep -m1 $pid_ram|awk ''|awk -f . '' `

#除錯程式用

#echo $port

#echo $pid_ram

#echo $ram

#echo $ram_max

#如果所占用的記憶體使用率大於所定義的值,則重啟該服務程式

if expr $ram />= $ram_max > /dev/null

then

#所要執行的動作

# echo 2

echo

"8180 tomcat rebooted" >>/usr/local/tomcat-5.5.9/logs/autoreboot.log

echo `date` >>/usr/local/tomcat-5.5.9/logs/autoreboot.log

/usr/local/tomcat-5.5.9/bin/shutdown.sh

kill -9

$pid_ram

/usr/local/tomcat-5.5.9/bin/startup.sh

#除錯程式用

#else

# echo 1

fi[/code]

出處:

linux 根據記憶體使用量自動重啟服務的指令碼

因tomcat經常記憶體占用比較大造成當機,所以寫了個指令碼當tomcat使用的記憶體到一定比率時就自動重啟它 設定為10分鐘執行一次。code bin sh 允許最大占用記憶體的百分比 ram max 45 服務程式所守候的埠 port 8180 通過守候埠獲取服務程式的pid pid ram n...

linux 記憶體使用量計算

linux 優先使用物理記憶體,當物理記憶體還有空閒時,linux是不會施放記憶體的,即時占用記憶體的程式已經被關閉了 這部分記憶體就用來做快取了 也就是說,即時你有2g的記憶體,用過一段時間後,也會被佔滿。這樣做的好處是,啟動那些剛開啟過的程式 或是讀取剛訪問過得資料會比較快,對於伺服器很有好處。...

SQL Server 記憶體使用量下降問題

sql server這個程式是非喜歡記憶體這東西的。所以它的記憶體使用量下降,一定是被別人給搶去了。這件事的後果就是sql server 變的 非常慢。怎麼樣才可以讓這件事不太容易發生呢?方法 1 lock page in memory 方法 用這個方法,就是給sql server 一種死不要臉佔記...