天天看點

Linux性能測試 ss指令

ss即socket state,也就是說,是可以檢視系統中socket的狀态的。我們可以用netstat,但為什麼還要用ss這個工具呢,當然ss也是有好處的。當我們打開的socket數量很多時,netstat就會變得慢了。

我們先來看看ss的使用格式:

ss的強大之處,大于可以設定過濾條件,我們可以根據socket的狀态來進行過濾,也可通過端口與ip位址進行過濾。也就是我們在指令格式裡面看到的STATE-FILTER與ADDRESS-FILTER。

首先看看STATE-FILTER,STATE-FILTER可用的過濾條件有:

1. 所有的TCP狀态,包含:established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listen and closing.

2. all,包含所有的狀态。

3. connected,除了listen與closed的所有其它狀态。

4. synchronized,除了syn-sent的所有connected的狀态。

5. bucket

6. big

使用時,如:

$ ss state connected再看看ADDRESS-FILTER,ADDRESS-FILTER用于過濾端口與位址。而且可以進行表達式組合。可用的子表達式有:

1. dst ADDRESS_PATTERN

2. src ADDRESS_PATTERN

3. dport RELOP PORT

4. sport RELOP PORT

5. autobound

其中ADDRESS_PATTERN為ip位址與端口比對,ip:port,可以用*代替。RELOP為<= >=或==。

如:

多個子表達式之間可以組合,當然跟tcpdump一樣,可以用or and not來組合。但括号要用轉義符号表示。

如:

看看幾個例子:

檢視系統總體資訊:

想看目前機器的11001端口被誰占用了:

我們可以看到,是一個叫syslog-ng的程序,程序id是21761。

繼續閱讀