Linux網絡相關命令
-
ping :檢測host地址或域名代表的主機是否可達;
-
ifconfig:查看當前主機的所有網卡以及工作狀態;
-
netstat:查看當前主機的top端口使用的情況,服務運行的情況;
-
netstat -tanp:可以查看當前使用協議(TCP/UDP)、接收緩衝區數據大小,發送緩衝區數據大小,本機地址,端口號,socket的狀態,進程的PID號/進程名;
-
netcat:可以模擬實現一個tcp/udp服務端客戶端;
netcat -l host port :模擬實現一個可以收發數據的TCP 服務器;
netcat host port : 模擬實現一個可以收發數據的TCP客戶端;
-
tcpdump:在Linux上一個非常實用的抓包工具;
-
tcpdump -i [網卡名稱] host[ip地址] port[端口號] :驗證TCP三次握手和四次揮手;
-
telnet:一個簡單的tcp客戶端,模擬遠程登錄;
-
telnet IP地址 port 端口號:在telnet命令裏按Ctrl +]退出;
開發Java程序的時候:
curl + URL地址:可以模擬瀏覽器連接http服務器;
curl -v url地址:可以把模擬的瀏覽器客戶端和http服務器通信的細節全部輸出,request,response;
一般協議都是TCP,除了傳輸視頻,音頻等文件時使用UDP協議;
ping 域名DNS,eg: ping www.baidu.com
RST:連接重置指令
TCP粘包問題:
確認應答
流式協議
進程、線程、網絡相關命令
ps、top、netstat
-
ps : 默認只查看當前用戶身份下創建的進程;
-
ps -ef : 查看Linux系統下所有運行的進程的詳細信息 主要關注的是用戶;
-
ps -ef | grep XXX 查看包含指定關鍵字信息的進程;
-
kill - 9 XXX進程號 強制殺死進程;
-
top -p + PID 號 查看指定的PID進程的資源使用情況;
- 查看進程:
ps -l:查看自己的進程
ps aux:查看系統所有進程
ps aux | grep threadx:查看特定的進程
pstree:查看進程樹。
pstree -A:查看所有進程樹
top:實時顯示進程信息。
top -d 2:兩秒鐘刷新一次
netstat:查看佔用端口的進程
netstat -anp | grep port:查看特定端口的進程
Linux 下如何查看CPU和磁盤利用率,內存大小
查看內存
- free:查看內存佔用;
- free -m:以MB爲單位顯示內存使用情況;
- free -h:以GB爲單位顯示內存使用情況;
- free -t:以總和的形式查詢內存的使用信息;
- free -s 5:週期性的查詢內存使用信息;每5秒執行一次命令;
注:
Mem:內存的使用情況總覽表
total:機器總的物理內存
used:用掉的內存
free:空閒的物理內存
T:物理內存(total)=系統看到的用掉的內存(used)+系統看到空閒的內存(free)
查看CPU
- top -d 5 :週期性的查詢CPU使用信息;每5秒刷新一次;
- ps auxw(查看本機的進程所佔cpu和mem的百分比情況)
使用"ps auxw" 可以查看到本機的進程所佔cpu和mem的百分比情況
ps auxw | head -1
%CPU 進程的cpu佔用率
%MEM 進程的內存佔用率
查看cpu信息(信息記錄在/proc/cpuinfo中)
總核數 = 物理CPU個數 X 每顆物理CPU的核數
總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數
-
查看虛擬機邏輯CPU的個數:cat /proc/cpuinfo| grep “processor”| wc -l
-
查看物理CPU個數:cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
-
列出CPU詳細信息:lscpu
磁盤利用率
df:是用來檢查linux服務器的文件系統的磁盤空間佔用情況。可以利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。
- 命令格式:
df [選項] [文件] - 命令功能:
顯示指定磁盤文件的可用空間。如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示。默認情況下,磁盤空間將以 1KB 爲單位進行顯示,除非環境變量 POSIXLY_CORRECT 被指定,那樣將以512字節爲單位進行顯示 - 命令參數:
-a 全部文件系統列表
-h 方便閱讀方式顯示
-H 等於“-h”,但是計算式,1K=1000,而不是1K=1024
-i 顯示inode信息
-k 區塊爲1024字節
-l 只顯示本地文件系統
-m 區塊爲1048576字節
–no-sync 忽略 sync 命令
-P 輸出格式爲POSIX
–sync 在取得磁盤信息前,先執行sync命令
-T 文件系統類型
選擇參數:
–block-size=<區塊大小> 指定區塊大小
-t<文件系統類型> 只顯示選定文件系統的磁盤信息
-x<文件系統類型> 不顯示選定文件系統的磁盤信息
–help 顯示幫助信息
–version 顯示版本信息
如何定位java進程佔用系統資源使用率高的問題
-
ps 查看當前用戶身份下創建的進程;
-
top -p + PID 查看指定的PID進程的資源使用情況;
-
top -Hp + PID 查看指定PID進程裏面所有線程的使用情況;
-
jstack + 進程PID 輸出當前JAVA進程所有線程的調用棧信息;
-
找到top命令輸出的那個資源佔用率高的線程調用棧信息(nid + 16進制);
-
找到調用棧信息最上面的代碼提示(代碼問件和行號),在java代碼上面,找到問題。