系統技術非業餘研究 » ss is one another utility to investigate sockets(特適合大規模tcp連結)
具體的可以參考這裡
他的最大特點是快, 當你的系統有上萬個tcp連結要了解的時候的時候, 你就知道我說什麼了. netstat等常規工具變成廢鐵了, 這時候他的作用就非常明顯了.
/proc
interface is inadequate, unfortunately. When amount of sockets is enough large,netstat
or even plaincat /proc/net/tcp/
cause nothing but pains and curses. In linux-2.4 the desease became worse: even if amount of sockets is small reading/proc/net/tcp/
is slow enough.This utility presents a new approach, which is supposed to scale well. I am not going to describe technical details here and will concentrate on description of the command. The only important thing to say is that it is not so bad idea to load module
tcp_diag
, which can be found in directoryModules
ofiproute2
. If you do not make thisss
will work, but it falls back to/proc
and becomes slow likenetstat
, well, a bit faster yet (see section “Some numbers”).
從技術上講, 它主要是通過/proc來獲取各種各樣的統計資訊. 特別是當處理tcp的時候用到了, tcp_diag功能. tcp_diag是tcp協議棧用於診斷和統計的一個模組, 用netfilter來獲取第一手的資訊的. ss就用到了這個技術, 保證了資訊的快捷獲取.
這個軟體是隸屬於iproute包的, 如果你的系統沒有的話可以這樣安裝:
apt-get -y install iproute
用它可以瞭解下協議棧佔用的記憶體, 每個連結的佇列使用情況, 每個連結屬於哪個程序.
而之前唯一能用的就是:
watch -n 1 'cat /proc/net/sockstat'
下面簡單介紹下他的使用:
[email protected]:/usr/src/iproute-20090324/misc# ss --help Usage: ss [ OPTIONS ] ss [ OPTIONS ] [ FILTER ] -h, --help this message -V, --version output version information -n, --numeric don't resolve service names -r, --resolve resolve host names -a, --all display all sockets -l, --listening display listening sockets -o, --options show timer information -e, --extended show detailed socket information -m, --memory show socket memory usage -p, --processes show process using socket -i, --info show internal TCP information -s, --summary show socket usage summary -4, --ipv4 display only IP version 4 sockets -6, --ipv6 display only IP version 6 sockets -0, --packet display PACKET sockets -t, --tcp display only TCP sockets -u, --udp display only UDP sockets -d, --dccp display only DCCP sockets -w, --raw display only RAW sockets -x, --unix display only Unix domain sockets -f, --family=FAMILY display sockets of type FAMILY -A, --query=QUERY QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY] -F, --filter=FILE read filter information from FILE FILTER := [ state TCP-STATE ] [ EXPRESSION ]
[email protected]:/usr/src/iproute-20090324/misc# ss -s Total: 750 (kernel 761) TCP: 21 (estab 7, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 761 - - RAW 0 0 0 UDP 3 3 0 TCP 21 18 3 INET 24 21 3 FRAG 0 0 0
[email protected]:/usr/src/iproute-20090324/misc# ss -t -m State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4251 mem:(r0,w0,f4096,t0) CLOSE-WAIT 38 0 192.168.235.147:13910 174.36.30.67:https mem:(r672,w0,f3424,t0) ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4635 mem:(r0,w0,f4096,t0) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:54620 mem:(r0,w0,f0,t0) ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:1095 mem:(r0,w0,f4096,t0) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:44234 mem:(r0,w0,f0,t0) ESTAB 0 0 127.0.0.1:54620 127.0.0.1:4369 mem:(r0,w0,f0,t0) ESTAB 0 0 127.0.0.1:44234 127.0.0.1:4369 mem:(r0,w0,f0,t0)
[email protected]:/usr/src/iproute-20090324/misc# ss -p State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4251 users:(("sshd",8373,3)) CLOSE-WAIT 38 0 192.168.235.147:13910 174.36.30.67:https users:(("dropbox",2674,13)) ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4635 users:(("sshd",350,3)) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:54620 users:(("epmd",28338,5)) ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:1095 users:(("sshd",29044,3)) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:44234 users:(("epmd",28338,4)) ESTAB 0 0 127.0.0.1:54620 127.0.0.1:4369 users:(("beam.smp",25947,11)) ESTAB 0 0 127.0.0.1:44234 127.0.0.1:4369 users:(("inet_gethost",23783,8),("inet_gethost",23784,8)) [email protected]:/usr/src/iproute-20090324/misc# ss -i State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4251 cubic rto:396 rtt:124.5/66 ato:40 cwnd:4 send 375.3Kbps rcv_rtt:296456 rcv_space:66472 CLOSE-WAIT 38 0 192.168.235.147:13910 174.36.30.67:https cubic wscale:7,9 rto:612 rtt:256/52 ato:40 cwnd:5 send 213.8Kbps rcv_rtt:259 rcv_space:5840 ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4635 cubic rto:356 rtt:144/33 ato:40 cwnd:4 send 324.4Kbps rcv_rtt:511258 rcv_space:46760 ESTAB 0 0 127.0.0.1:4369 127.0.0.1:54620 cubic wscale:9,9 rto:204 rtt:4/2 ato:40 cwnd:3 send 98.3Mbps rcv_space:32768 ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:1095 cubic rto:232 rtt:21/18 ato:40 cwnd:5 ssthresh:4 send 2.8Mbps rcv_rtt:173516 rcv_space:118904 ESTAB 0 0 127.0.0.1:4369 127.0.0.1:44234 cubic wscale:9,9 rto:204 rtt:4/2 ato:40 cwnd:3 send 98.3Mbps rcv_space:32768 ESTAB 0 0 127.0.0.1:54620 127.0.0.1:4369 cubic wscale:9,9 rto:204 rtt:4/2 ato:40 cwnd:3 send 98.3Mbps rcv_space:32792 ESTAB 0 0 127.0.0.1:44234 127.0.0.1:4369 cubic wscale:9,9 rto:204 rtt:4/2 ato:40 cwnd:3 send 98.3Mbps rcv_space:32792
[email protected]:/usr/src/iproute-20090324/misc# ss -e State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4251 timer:(keepalive,50min,0) ino:1843366 sk:c2ea2600 CLOSE-WAIT 38 0 192.168.235.147:13910 174.36.30.67:https ino:12200 sk:c2ea2140 ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4635 timer:(keepalive,2min59sec,0) ino:1101514 sk:c2ea4740 ESTAB 0 0 127.0.0.1:4369 127.0.0.1:54620 ino:2309430 sk:c2ea2ac0 ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:1095 timer:(keepalive,6min59sec,0) ino:379842 sk:c2f4af80 ESTAB 0 0 127.0.0.1:4369 127.0.0.1:44234 ino:2044745 sk:c2ea3440 ESTAB 0 0 127.0.0.1:54620 127.0.0.1:4369 ino:2309429 sk:c2ea7200 ESTAB 0 0 127.0.0.1:44234 127.0.0.1:4369 ino:2044744 sk:c2ea1300
[email protected]:/usr/src/iproute-20090324/misc# ss -o State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4251 timer:(keepalive,50min,0) CLOSE-WAIT 38 0 192.168.235.147:13910 174.36.30.67:https ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:4635 timer:(keepalive,2min50sec,0) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:54620 ESTAB 0 0 192.168.235.147:ssh 192.168.235.155:1095 timer:(keepalive,6min50sec,0) ESTAB 0 0 127.0.0.1:4369 127.0.0.1:44234 ESTAB 0 0 127.0.0.1:54620 127.0.0.1:4369 ESTAB 0 0 127.0.0.1:44234 127.0.0.1:4369
Have fun!!!
Post Footer automatically generated by wp-posturl plugin for wordpress.
No related posts.
相關推薦
系統技術非業餘研究 » ss is one another utility to investigate sockets(特適合大規模tcp連結)
具體的可以參考這裡 他的最大特點是快, 當你的系統有上萬個tcp連結要了解的時候的時候, 你就知道我說什麼了. netstat等常規工具變成廢鐵了, 這時候他的作用就非常明顯了. /proc interface is inadequate, unfortunately. When amount
系統技術非業餘研究
ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼
系統技術非業餘研究 » MySQL資料庫架構的演化觀察
MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql
系統技術非業餘研究 » inet_dist_connect_options
Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke
系統技術非業餘研究 » 推薦工作機會
最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗: 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海
系統技術非業餘研究 » 新的工作和研究方向
和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w
系統技術非業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調
Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke
系統技術非業餘研究 » 2017升的最快的幾個資料庫無責任點評
ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼
系統技術非業餘研究 » Erlang 17.5引入+hpds命令列控制程序預設字典大小
Erlang 17.5釋出引入控制程序預設字典大小的命令列引數: Erlang/OTP 17.5 has been released Written by Henrik, 01 Apr 2015 Some highlights of the release are: ERTS: Added co
系統技術非業餘研究 » inet_dist_listen_options
Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke
系統技術非業餘研究 » 老生常談: ulimit問題及其影響
ulimit最初設計是用來限制程序對資源的使用情況的,因為早期的系統系統資源包括記憶體,CPU都是非常有限的,系統要保持公平,就要限制大家的使用,以達到一個相對公平的環境。以下是典型的機器預設的限制情況: $ ulimit -a core file size (blocks,
系統技術非業餘研究 » 求賢帖
原創文章,轉載請註明: 轉載自系統技術非業餘研究 本文連結地址: 求賢帖 作為一個優秀的工程師,你其實不缺少才華,你缺少的是神一樣的隊友、充滿挑戰的世界級技術難題,和一個可以施展自己才華的大舞臺。加入阿里核心系統資料庫開發團隊吧,你缺的這裡都有。來吧,戳這裡,給我們見識你的機會:http://b
系統技術非業餘研究 » Erlang R16B03釋出,R17已發力
Erlang R16B03釋出了,通常03版本是bug fix版本,進入生產版本,官方的說明如下: OTP R16B03 is a service release with mostly a number of small corrections and user contributions. B
系統技術非業餘研究 » Erlang R13B04 Installation
R13B04後erlang的原始碼編譯為了考慮移植性,就改變了編譯方式,以下是官方wiki上的安裝文件: 1. Cloning Here are the basic steps to build Erlang/OTP in the Git repository. Start by cloning:
系統技術非業餘研究 » Understanding Linux CPU Load 資料彙總
最近關注線上CPU load的人挺多,很多人覺得load太高系統就有問題,就想各種辦法來折騰。其實在我看來load只是系統CPU執行佇列的在執行程序數的近似值, 如下圖: 對於Unix發展的初期,機器的效能比較差,CPU核數也少,參考意義比較大。現在的機器都是非常強悍的,CPU,記憶體,IO各個
系統技術非業餘研究 » Erlang R15的記憶體delayed dealloc特性對訊息密集型程式的影響
在新的NUMA體系結構下,每個CPU都有自己的本地記憶體,如果要訪問其他CPU的記憶體,那算remote了,要走CPU之間的QPI通道,通常這樣速度會有40%的下降。 那麼對於多執行緒的程式來講,這個硬體的變化對軟體也有很大的影響。在多執行緒程式裡面,通常一個執行緒會為一個物件分配記憶體,然後把這
系統技術非業餘研究 » Erlang R17新特性淺評
Erlang R17RC2 原始碼已經就緒, 參見 這裡 後續版本的釋出時間,官方的時間安排參見 這裡,摘抄如下: Preliminary dates for the upcoming release: Release: erts, emu,comp |Code stop
系統技術非業餘研究 » Erlang R16支援帶顏色的控制檯
Erlang通過fix tty驅動的過濾,在R16版本支援帶顏色的控制檯,這個特性在我們做各種監控工具高亮非常有幫助,參見R16的Readme: Support ANSI in console Unix platforms will no longer filter control sequenc
系統技術非業餘研究 » Linux下新系統呼叫sync_file_range
我們在做資料庫程式或者IO密集型的程式的時候,通常在更新的時候,比如說資料庫程式,希望更新有一定的安全性,我們會在更新操作結束的時候呼叫fsync或者fdatasync來flush資料到持久裝置去。而且通常是以頁面為單位,16K一次或者4K一次。 安全性保證了,但是效能就有很大的損害。而且我們更新
系統技術非業餘研究 » Linux檔案預讀分析以及評估對系統的影響
Linux系統很重要的一個性能提升點就是它的Pagecache, 因為記憶體比IO快太多了,所以大家都想進辦法來利用這個cache。 檔案系統也不例外,為了達到高效能,檔案讀取通常採用預讀來預測使用者的行為,把使用者可能需要的資料預先讀取到cache去,達到高效能的目的。 Linux各個發行版re