network bitrate of a poll of processes
Marc Spitzer
mspitzer at gmail.com
Mon May 26 21:02:37 UTC 2008
On Mon, May 26, 2008 at 4:27 PM, Mathieu Prevot
<mathieu.prevot at gmail.com> wrote:
> 2008/5/26 Marc Spitzer <mspitzer at gmail.com>:
>> On Mon, May 26, 2008 at 12:14 PM, Mathieu Prevot
>> <mathieu.prevot at gmail.com> wrote:
>>> 2008/5/26 Dan Nelson <dnelson at allantgroup.com>:
>>>> In the last episode (May 26), Mathieu Prevot said:
>>>>> Hi,
>>>>>
>>>>> I would like to know the bitrate of a pool of child processes that use
>>>>> a network connection, how can I have something like netstat -w1
>>>>> provide but at the process level ?
>>>>
>>>> If you can segregate them to their own UID, you can use an ipfw "count
>>>> ip from any to any uid 6666" rule to count the packets. Another option
>>>> would be to jail them to a dedicated IP address and count traffic on
>>>> that IP.
>>>
>>> Both are nice... thank you. And don't you have something more portable
>>> ie. that could run on "any" posix os - like a sh script that use
>>> standard tools - and that doesn't need root user intervention ?
>>>
>>> Mathieu
>>
>> I do not think so, firewall for example is controlled by root. And
>> users do not generally have detailed access to other users
>> information. You can look into the BASM framework to track what your
>> apps are doing and if you know the behavior to expect you can use
>> netflow/argus/tcpdump to track that and post process the logs in each
>> case into something useful.
>>
>> What are you trying to do, details do help?
>>
>> marc
>
> I have a script that generates many child processes that download
> videos (~10MB) in this case, or do heavy data processing/analysing. I
> can tune the number of workers as I want, but It's a shared cluster so
> I would like to
>
> 1) measure 2) optimize/control (by number of workers ? at the script
> level ! so I can update thing very dynamically)
> a) CPU load b) IO on drive(s) c) network load
>
> and I prefer solutions that don't need root access/intervention. I can
> measure indirectly network load using `date +%s` and `du -b |sed
> 's/\t.*//' ` regularly... but I may have to deal with several 10GB
> later - and actually the number of files is more critical than their
> size.
> Maybe writing a (very) quick and dirty python app that listen/attach
> to a group of processes (for the network case) ?
>
> Mathieu
>
for the CPU stuff take a look at ps:
bob% ps aO%mem,%cpu,ppid
PID %MEM %CPU PPID TT STAT TIME COMMAND
768 0.2 0.0 1 v0 Is+ 0:00.01 /usr/libexec/getty Pc ttyv0
769 0.2 0.0 1 v1 Is+ 0:00.01 /usr/libexec/getty Pc ttyv1
770 0.2 0.0 1 v2 Is+ 0:00.01 /usr/libexec/getty Pc ttyv2
771 0.2 0.0 1 v3 Is+ 0:00.01 /usr/libexec/getty Pc ttyv3
772 0.2 0.0 1 v4 Is+ 0:00.01 /usr/libexec/getty Pc ttyv4
773 0.2 0.0 1 v5 Is+ 0:00.01 /usr/libexec/getty Pc ttyv5
774 0.2 0.0 1 v6 Is+ 0:00.01 /usr/libexec/getty Pc ttyv6
775 0.2 0.0 1 v7 Is+ 0:00.01 /usr/libexec/getty Pc ttyv7
272 0.2 0.0 1 con- I 0:00.04 dhclient: le0 [priv] (dhclient)
951 0.6 0.0 949 p0 Rs 0:00.28 -zsh (zsh)
1056 0.2 0.0 951 p0 R+ 0:00.01 ps aO%mem,%cpu,ppid
add what you need and you have your cpu and such stats, it might do
your IO as well also look for thing in (s)bin that end in stat for
things that might be a better fit.
Network I do not know how to get you the level of access you want
without root/trusted access at least on collection. You will not need
it on processing.
as far as managing thing after you have the information I have nothing
for you there.
good luck,
marc
--
Freedom is nothing but a chance to be better.
Albert Camus
More information about the freebsd-hackers
mailing list