Re: Tools to calculate memory usage per jail
Miroslav Lachman <[email protected]>
| Newsgroups | gmane.os.freebsd.isp |
|---|---|
| Message-ID | <[email protected]> |
Marc G. Fournier wrote:
>
> Subject says it all ... does anyone know of / have such a tool?
I am using some modified shell script - jps. It is based on Oliver
Fromme http://www.secnetix.de/~olli/scripts/jps
My version is attached. If jps is called with JID param, you get list of
processes of given jail and summary like this:
==============================
summary for JID 6 / tester1.example.com
%MEM RSS VSZ %CPU
5 221064 1034648 0
It is far from perfect tool, but it is enough to my needs.
Or you can ask on [email protected] list, where are more skilled
peoples around jails :)
[Stef Walter is working on bsnmp-jails, maybe he is able to extend it
for memory usage too]
Miroslav Lachman
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-isp
To unsubscribe, send any mail to "[email protected]"
jps
(text/plain, 1.6 KB)
#!/bin/sh - # # Copyright (C) 2007 Oliver Fromme <[email protected]> <[email protected]> # All rights reserverd. Standard 2-clause BSD license and disclaimer apply. # # List processes that are running inside a jail. # This is intended to complement the standard jls(8) command. # # Usage: # jps list all jailed processes # jps <JID> list only processes in jail <JID>. # # Run the jls(8) command to get a list of jails and JIDs. # # Note: This script works for FreeBSD >= 6 only! # For FreeBSD 4.x, please use jailstat instead: # http://www.secnetix.de/~olli/scripts/jailstat # ME="${0##*/}" Usage() { cat <<-tac $ME -- List processes that are running inside a jail. This is intended to complement the standard jls(8) command. Usage: $ME list all jailed processes $ME <JID> list only processes in jail <JID> Run the jls(8) command to get a list of jails and JIDs. tac exit 1 } if [ $# -gt 2 ]; then Usage fi if [ $# -eq 1 ]; then case "$1" in ""|*[!0-9]*) Usage ;; esac FILTER='$1=="'$1'"' sum_jid="$1" jname=`jls | awk "$FILTER"'{ print $3 }'` else FILTER='$1!="0"' sum_jid="all" jname="-" fi ps -axww -o jid,pid,%mem,rss,user,command | awk '$1!~/[0-9]/||'"$FILTER" | sort -n echo echo "==============================" echo " summary for JID $sum_jid / $jname" echo " %MEM RSS VSZ %CPU " ## NOTE: jail processes can be swapped (%mem & rss are zero, but vsz not) ps -axww -o jid,%mem,rss,vsz,%cpu | awk '$1!~/[0-9]/||'"$FILTER" | awk '{ sm += $2; sp += $3; sv += $4; sc += $5 } END { printf(" %3d %9i %9i %3d \n", sm, sp, sv, sc) }' #--