1.命令集
1)nohup
用途:不掛斷地運行命令。
語法:nohup Command [ Arg … ] [ & ]
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。
如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。
如果沒有文件能創建或打開以用於追加,那么 Command 參數指定的命令不可調用。
2)&
用途:在后台運行
一般兩個一起用
nohup command &
3)java
java命令的模版:java [-options] -jar jarfile [args...]
啟動命令示例:
java -Xms128m -Xmx256m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8081,suspend=n -jar /data/app/test.jar --spring.profiles.active=dev &
其中:
-Xms128m 設置的是JVM堆最小內存為128m
-Xmx256m 設置的是JVM堆最大內存為256m
這里有個問題是-Xmx指定的內存不包括jvm運行中使用的本地內存,所以如果有NIO等涉及到本地內存的情況時,該java進程占用的總內存會超過-Xmx設定的數值
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8081,suspend=n
設置debug模式,允許tomcat遠程連接服務器調試,調試端口可指定,此處為8081
/data/app/test.jar 指定需要執行的jar包的路徑
--spring.profiles.active=dev 設定SpringBoot運行環境為dev環境
& 后台模式執行
2.執行
nohup java -XX:MaxMetaspaceSize=1024m -XX:InitialBootClassLoaderMetaspaceSize=256m -Xms2g -Xmx4g -jar video-retrieval-0.0.1-SNAPSHOT.jar > start.log 2>&1 &
2>&1 : 把標准出錯流重定向到標准輸出流 (此處:將正常日志 / 錯誤日志 統一保存到 start.log )
3.maven打包指定版本
<build>
<!-- 產生的構件的文件名,默認值是${artifactId}-${version}。 -->
<finalName>video-retrieval-1.1</finalName>
</build>
4.記錄Java進程系統資源占用情況
獲取 jar 執行進程,獲取執行過程中內存損耗情況:
pidstat -r -p 12229 2 > memory.log &
運行結果:
pidstat - 進程實時監控命令。
主要用於監控全部或指定進程占用系統資源的情況,如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之后運行pidstat將顯示自上次運行該命令以后的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。
用法:
pidstat [ 選項 ] [ <時間間隔> ] [ <次數> ]
常用參數:
- -u:默認的參數,顯示各個進程的cpu使用統計
- -r:顯示各個進程的內存使用統計
- -d:顯示各個進程的IO使用情況
- -p:指定進程號
- -w:顯示每個進程的上下文切換情況
- -t:顯示選擇任務的線程的統計信息外的額外信息
- -T { TASK | CHILD | ALL }
這個選項指定了pidstat監控的。TASK表示報告獨立的task,CHILD關鍵字表示報告進程下所有線程統計信息。ALL表示報告獨立的task和task下面的所有線程。
注意:task和子線程的全局的統計信息和pidstat選項無關。這些統計信息不會對應到當前的統計間隔,這些統計信息只有在子線程kill或者完成的時候才會被收集。 - -V:版本號
- -h:在一行上顯示了所有活動,這樣其他程序可以容易解析。
- -I:在SMP環境,表示任務的CPU使用率/內核數量
- -l:顯示命令名和所有參數