私は現在私のサーバーのいくつかのプロセスを観察しており、帯域幅がどれくらいになるかを知りたいです。全体的に使用始まって以来。私はその現在の使い方を知りたくないし、nethogs
/も私には役に立ちませんnload
。
答え1
私を見てここに答えてください。
nethogを使用すると、次のように開始してMBごとの総帯域幅を監視できます。
sudo nethogs -v 3
答え2
興味深い質問です。少なくともIP6プロセスのsnmp値を見ることができるようです/proc/[pid]/net/dev_snmp6/[DEV]
。
ifIndex 4
Ip6InReceives 4
Ip6InHdrErrors 0
Ip6InTooBigErrors 0
Ip6InNoRoutes 0
Ip6InAddrErrors 0
Ip6InUnknownProtos 0
Ip6InTruncatedPkts 0
Ip6InDiscards 0
Ip6InDelivers 4
Ip6OutForwDatagrams 0
Ip6OutRequests 24
Ip6OutDiscards 0
Ip6OutNoRoutes 0
Ip6ReasmTimeout 0
Ip6ReasmReqds 0
Ip6ReasmOKs 0
Ip6ReasmFails 0
Ip6FragOKs 0
Ip6FragFails 0
Ip6FragCreates 0
Ip6InMcastPkts 2
Ip6OutMcastPkts 34
Ip6InOctets 618
Ip6OutOctets 1946
Ip6InMcastOctets 304
Ip6OutMcastOctets 2786
Ip6InBcastOctets 0
Ip6OutBcastOctets 0
Ip6InNoECTPkts 4
Ip6InECT1Pkts 0
Ip6InECT0Pkts 0
Ip6InCEPkts 0
Icmp6InMsgs 2
Icmp6InErrors 0
Icmp6OutMsgs 22
Icmp6OutErrors 0
Icmp6InCsumErrors 0
Icmp6InDestUnreachs 0
Icmp6InPktTooBigs 0
Icmp6InTimeExcds 0
Icmp6InParmProblems 0
Icmp6InEchos 0
Icmp6InEchoReplies 0
Icmp6InGroupMembQueries 0
Icmp6InGroupMembResponses 0
Icmp6InGroupMembReductions 0
Icmp6InRouterSolicits 0
Icmp6InRouterAdvertisements 2
Icmp6InNeighborSolicits 0
Icmp6InNeighborAdvertisements 0
Icmp6InRedirects 0
Icmp6InMLDv2Reports 0
Icmp6OutDestUnreachs 0
Icmp6OutPktTooBigs 0
Icmp6OutTimeExcds 0
Icmp6OutParmProblems 0
Icmp6OutEchos 0
Icmp6OutEchoReplies 0
Icmp6OutGroupMembQueries 0
Icmp6OutGroupMembResponses 0
Icmp6OutGroupMembReductions 0
Icmp6OutRouterSolicits 9
Icmp6OutRouterAdvertisements 0
Icmp6OutNeighborSolicits 3
Icmp6OutNeighborAdvertisements 0
Icmp6OutRedirects 0
Icmp6OutMLDv2Reports 10
Icmp6InType134 2
Icmp6OutType133 9
Icmp6OutType135 3
Icmp6OutType143 10
しかし、これはおそらく私がコンパイルする特別なカーネル機能である可能性が高いです。
cat /proc/3553/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth0: 23650521 158896 0 0 0 0 0 9457 720802 4696 0 0 0 0 0 0
lo: 53621 490 0 0 0 0 0 0 53621 490 0 0 0 0 0 0
net/dev
クエリ文書別/proc/[pid]
。使用される各インターフェイスのIOバイトを読み取ることができます。
帯域幅はプロセスの稼働時間で割る必要があります。これはで確認できますclock(3)
。ただし、プロセスの開始時間を見つけるための別の方法があります。
私の考えには、この値はstat /proc/[pid]
かなり正確になり、/proc/[pid]/stat
システムが起動してからのクロックティックタイムも含まれているようです。