<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blueyed</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Blueyed"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Blueyed"/>
	<updated>2026-05-15T18:53:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_munin&amp;diff=5874</id>
		<title>Monitoring openvz resources using munin</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_munin&amp;diff=5874"/>
		<updated>2008-05-12T23:55:05Z</updated>

		<summary type="html">&lt;p&gt;Blueyed: Wikified (at least some more), added reference to another plugin, which uses vzlist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
There are several plugins available on this page to monitor beancounter values in [http://munin.projects.linpro.no/ Munin].&lt;br /&gt;
The third one tries to combine the other two.&lt;br /&gt;
&lt;br /&gt;
= &amp;quot;Simple&amp;quot; munin plugin =&lt;br /&gt;
&lt;br /&gt;
The plugin listed below grabs all the beancounters' values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
ATTR=`basename $0 | sed 's/^vebc_//g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
                echo yes&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
            cat /proc/bc/0/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                echo ${vals[0]}&lt;br /&gt;
            done&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
#       echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_title $ATTR beancounter for containers&amp;quot;&lt;br /&gt;
        echo 'graph_category system'&lt;br /&gt;
        echo &amp;quot;graph_info 'Containers beancounters info'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        for CTID in `ls -d1 /proc/bc/???`; do&lt;br /&gt;
            id=`basename $CTID`&lt;br /&gt;
            grep $ATTR $CTID/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                name=${vals[0]}&lt;br /&gt;
                echo ${id}.label $id&lt;br /&gt;
                echo &amp;quot;${id}.warning  ${vals[3]}&amp;quot;&lt;br /&gt;
                echo &amp;quot;${id}.critical  ${vals[4]}&amp;quot;&lt;br /&gt;
            done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
        exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
for CTID in `ls -d1 /proc/bc/???`; do&lt;br /&gt;
    id=`basename $CTID`&lt;br /&gt;
    grep $ATTR $CTID/resources |&lt;br /&gt;
    while read str; do&lt;br /&gt;
        vals=($str)&lt;br /&gt;
        name=${vals[0]}&lt;br /&gt;
        echo &amp;quot;$id.value ${vals[1]}&amp;quot;&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Extended Version for old system using user_beancounter =&lt;br /&gt;
&lt;br /&gt;
Put it with the munin plugins and make a link for every&lt;br /&gt;
graph which should be produced named like:&lt;br /&gt;
&lt;br /&gt;
vebc_VALUENAME1_VALUENAME2_..._CTID&lt;br /&gt;
&lt;br /&gt;
e.g.: vebc_numflock_numpty_numsiginfo_101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
ATTR=`basename $0 | sed -e 's/^vebc_.*_//'`&lt;br /&gt;
STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
                echo yes&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
            cat /proc/bc/0/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                echo ${vals[0]}&lt;br /&gt;
            done&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
#       echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_title beancounter for CT$ATTR: $STATS&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_category CT$ATTR&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_info 'Container bean counters info'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        readme=&amp;quot;false&amp;quot;&lt;br /&gt;
        cat /proc/user_beancounters | while read myid stuff; do&lt;br /&gt;
                line=&amp;quot;&amp;quot;&lt;br /&gt;
                if [ &amp;quot;$myid&amp;quot; == &amp;quot;$ATTR:&amp;quot; ]; then&lt;br /&gt;
                        readme=&amp;quot;true&amp;quot;&lt;br /&gt;
                        line=&amp;quot;$stuff&amp;quot;&lt;br /&gt;
                        echo $line&lt;br /&gt;
                else&lt;br /&gt;
                        loid=`echo $myid | sed -e 's/.*:/:/'`&lt;br /&gt;
                        if [ &amp;quot;$loid&amp;quot; == &amp;quot;:&amp;quot; ]; then&lt;br /&gt;
                                readme=&amp;quot;false&amp;quot;&lt;br /&gt;
                        fi&lt;br /&gt;
                        if [ &amp;quot;$readme&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
                                line=&amp;quot;$myid $stuff&amp;quot;&lt;br /&gt;
                        echo $line&lt;br /&gt;
                        fi&lt;br /&gt;
                fi&lt;br /&gt;
        done | while read name value top warn max; do&lt;br /&gt;
                okname=&amp;quot;dummy&amp;quot;&lt;br /&gt;
                for statname in $STATS; do&lt;br /&gt;
                        if [ &amp;quot;$name&amp;quot; == &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
                                okname=$name&lt;br /&gt;
                        fi&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$okname&amp;quot; != &amp;quot;dummy&amp;quot; ]; then&lt;br /&gt;
                        echo $okname.label $name&lt;br /&gt;
                        echo $okname.warning $warn&lt;br /&gt;
                        echo $okname.critical $max&lt;br /&gt;
                fi&lt;br /&gt;
        done&lt;br /&gt;
        exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
readme=&amp;quot;false&amp;quot;&lt;br /&gt;
cat /proc/user_beancounters | while read myid stuff; do&lt;br /&gt;
        line=&amp;quot;&amp;quot;&lt;br /&gt;
        if [ &amp;quot;$myid&amp;quot; == &amp;quot;$ATTR:&amp;quot; ]; then&lt;br /&gt;
                readme=&amp;quot;true&amp;quot;&lt;br /&gt;
                line=&amp;quot;$stuff&amp;quot;&lt;br /&gt;
                echo $line&lt;br /&gt;
        else&lt;br /&gt;
                loid=`echo $myid | sed -e 's/.*:/:/'`&lt;br /&gt;
                if [ &amp;quot;$loid&amp;quot; == &amp;quot;:&amp;quot; ]; then&lt;br /&gt;
                        readme=&amp;quot;false&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
                if [ &amp;quot;$readme&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
                        line=&amp;quot;$myid $stuff&amp;quot;&lt;br /&gt;
                echo $line&lt;br /&gt;
                fi&lt;br /&gt;
        fi&lt;br /&gt;
done | while read name value x; do&lt;br /&gt;
        okname=&amp;quot;dummy&amp;quot;&lt;br /&gt;
        for statname in $STATS; do&lt;br /&gt;
                if [ &amp;quot;$name&amp;quot; == &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
                        okname=$name&lt;br /&gt;
                fi&lt;br /&gt;
        done&lt;br /&gt;
        if [ &amp;quot;$okname&amp;quot; != &amp;quot;dummy&amp;quot; ]; then&lt;br /&gt;
                echo $okname.value $value&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is not too performant but should do and the graphs are much&lt;br /&gt;
more readable then the first solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Extended plugin from Jan Tomasek =&lt;br /&gt;
Jan has posted another plugin on http://forum.openvz.org/index.php?t=msg&amp;amp;goto=15122, where I've fixed two things:&lt;br /&gt;
# &amp;quot;exit 0&amp;quot; in the &amp;quot;config&amp;quot; block&lt;br /&gt;
# Replaced &amp;quot;vals=($str); echo ${vals[0]}&amp;quot; with &amp;quot;echo ${str%% *}&amp;quot; (the former was causing problems I don't remember anymore)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Munin's plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
# $Log$&lt;br /&gt;
# Revision 1.3 2007/07/19 12:57:00 Jan Tomasek &amp;lt;jan@tomasek.cz&amp;gt;&lt;br /&gt;
# * rewrited to work with /proc/bc/&amp;lt;VEID&amp;gt;/resources instead of&lt;br /&gt;
# /proc/user_beancounters, that simplified code and result&lt;br /&gt;
# is also bit faster.&lt;br /&gt;
# * added references to OpenVZ wiki&lt;br /&gt;
# Revision 1.3.1 2008/05/13 01:26:00 Daniel Hahler &amp;lt;http://daniel.hahler.de/&amp;gt;&lt;br /&gt;
# * Minor fixes&lt;br /&gt;
#   - &amp;quot;exit 0&amp;quot; in &amp;quot;config&amp;quot; block&lt;br /&gt;
#   - Use &amp;quot;echo ${str%% *}&amp;quot; in &amp;quot;suggest&amp;quot;, instead of &amp;quot;vals=($str); echo ${vals[0]}&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Original revision taken from:&lt;br /&gt;
# http://wiki.openvz.org/Monitoring_openvz_resources_using_munin&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
VEID=`basename $0 | sed -e 's/^vebc_.*_//'`;&lt;br /&gt;
STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
    if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
        echo yes&lt;br /&gt;
        exit 0&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
    if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
        cat /proc/bc/0/resources | while read str; do&lt;br /&gt;
        # Print everything before &amp;quot; &amp;quot;&lt;br /&gt;
        echo ${str%% *}&lt;br /&gt;
        done&lt;br /&gt;
        exit 0&lt;br /&gt;
    else&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -f /proc/bc/$VEID/resources ]; then&lt;br /&gt;
    exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
    #echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_title VE$VEID: $STATS&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_vlabel bean counters&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_category VE$VEID&amp;quot;&lt;br /&gt;
    # Note on URLs. General graph info is by munin version 1.2.5&lt;br /&gt;
    # accepted even with HTML code. But for value.info it escapes URL,&lt;br /&gt;
    # I expect that authors of munin will note that in future and put&lt;br /&gt;
    # escaping even for graph.info.&lt;br /&gt;
    echo &amp;quot;graph_info VE bean counters info. Documentation of the OpenVZ resource management is located at &amp;lt;a href=\&amp;quot;&lt;br /&gt;
http://wiki.openvz.org/UBC\&amp;quot;&amp;gt;http://wiki.openvz.org/UBC&amp;lt;/a&amp;gt;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    cat /proc/bc/$VEID/resources | while read name value top warn max stuff ; do&lt;br /&gt;
        for statname in $STATS; do&lt;br /&gt;
        if [ &amp;quot;$name&amp;quot; = &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
            URL=&amp;quot;http://wiki.openvz.org/$name&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$warn&amp;quot; = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
                warn=$max&lt;br /&gt;
            fi&lt;br /&gt;
            echo $name.label $name&lt;br /&gt;
            echo $name.warning $warn&lt;br /&gt;
            echo $name.critical $max&lt;br /&gt;
            echo $name.info Description of this resource is located at $URL&lt;br /&gt;
        fi&lt;br /&gt;
        done&lt;br /&gt;
    done&lt;br /&gt;
    exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
cat /proc/bc/$VEID/resources | while read name value stuff ; do&lt;br /&gt;
    for statname in $STATS; do&lt;br /&gt;
    if [ &amp;quot;$name&amp;quot; = &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
        echo $name&amp;quot;.value &amp;quot;$value;&lt;br /&gt;
    fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Munin plugin setup =&lt;br /&gt;
== Run as root ==&lt;br /&gt;
Please note, you have to configure plugin to run as root. Therefore, add the following to /etc/munin/plugin-conf.d/ somewhere:&lt;br /&gt;
  [vebc*]&lt;br /&gt;
  user root&lt;br /&gt;
&lt;br /&gt;
== Installing the plugins ==&lt;br /&gt;
There's a single plugin file, which can be installed several times and can put several values into the same graph.&lt;br /&gt;
You should install the plugin from above to e.g. &amp;lt;code&amp;gt;/usr/local/share/munin/plugins/vebc_&amp;lt;/code&amp;gt; and then put symlinks to there from /etc/munin/plugins.&lt;br /&gt;
The following script allows you to handle this easily:&lt;br /&gt;
To install this, you can use the following script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
FILE=`mktemp /tmp/ln-vebc-XXXXXX`&lt;br /&gt;
&lt;br /&gt;
cd /etc/munin/plugins&lt;br /&gt;
&lt;br /&gt;
for resources in kmemsize \&lt;br /&gt;
    lockedpages_privvmpages_shmpages_physpages_vmguarpages_oomguarpages \&lt;br /&gt;
    numproc \&lt;br /&gt;
    numtcpsock_numflock_numpty_numsiginfo_numothersock_numiptent \&lt;br /&gt;
    tcpsndbuf_tcprcvbuf_othersockbuf_dgramrcvbuf \&lt;br /&gt;
    dcachesize \&lt;br /&gt;
    numfile&lt;br /&gt;
do&lt;br /&gt;
    for VE in 0 `/usr/sbin/vzlist | sed &amp;quot;s/^ *//&amp;quot; |grep '^[0-9]' | cut -f 1 -d &amp;quot; &amp;quot;` ; do&lt;br /&gt;
        ln -sf /usr/local/share/munin/plugins/vebc_ &amp;quot;vebc_&amp;quot;$resources&amp;quot;_&amp;quot;$VE&lt;br /&gt;
        echo &amp;quot;vebc_&amp;quot;$resources&amp;quot;_&amp;quot;$VE &amp;gt;&amp;gt; $FILE&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# remove no longer deserved links (ie. links pointing to machines&lt;br /&gt;
# which were destroyed or stoped)&lt;br /&gt;
&lt;br /&gt;
find -type l -name vebc_\* | sed &amp;quot;s/\.\///&amp;quot; | while read LN; do&lt;br /&gt;
    if grep ^$LN$ $FILE &amp;gt;/dev/null; then&lt;br /&gt;
        true&lt;br /&gt;
    else&lt;br /&gt;
        rm $LN&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
rm $FILE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Another plugin, using vzlist ==&lt;br /&gt;
There is another plugin available at http://muninexchange.projects.linpro.no/?view&amp;amp;phid=249 - using vzlist and PHP.&lt;br /&gt;
Especially using &amp;quot;vzlist&amp;quot; to only gather the requested fields might be a faster approach.&lt;/div&gt;</summary>
		<author><name>Blueyed</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_munin&amp;diff=5873</id>
		<title>Monitoring openvz resources using munin</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_munin&amp;diff=5873"/>
		<updated>2008-05-12T23:33:49Z</updated>

		<summary type="html">&lt;p&gt;Blueyed: /* munin plugin */ Added plugin from Jan (http://forum.openvz.org/index.php?t=msg&amp;amp;goto=15122)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
{{wikify}}&lt;br /&gt;
&lt;br /&gt;
== munin plugin ==&lt;br /&gt;
&lt;br /&gt;
The plugin listed below grabs all the beancounters' values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
ATTR=`basename $0 | sed 's/^vebc_//g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
                echo yes&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
            cat /proc/bc/0/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                echo ${vals[0]}&lt;br /&gt;
            done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
#       echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_title $ATTR beancounter for containers&amp;quot;&lt;br /&gt;
        echo 'graph_category system'&lt;br /&gt;
        echo &amp;quot;graph_info 'Containers beancounters info'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        for CTID in `ls -d1 /proc/bc/???`; do&lt;br /&gt;
            id=`basename $CTID`&lt;br /&gt;
            grep $ATTR $CTID/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                name=${vals[0]}&lt;br /&gt;
                echo ${id}.label $id&lt;br /&gt;
                echo &amp;quot;${id}.warning  ${vals[3]}&amp;quot;&lt;br /&gt;
                echo &amp;quot;${id}.critical  ${vals[4]}&amp;quot;&lt;br /&gt;
            done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
        exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        for CTID in `ls -d1 /proc/bc/???`; do&lt;br /&gt;
            id=`basename $CTID`&lt;br /&gt;
            grep $ATTR $CTID/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                name=${vals[0]}&lt;br /&gt;
                echo &amp;quot;$id.value ${vals[1]}&amp;quot;&lt;br /&gt;
            done&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note, you have to configure plugin to run as root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[vebc*]&lt;br /&gt;
user root&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
at /etc/munin/plugin-conf.d/ somewhere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extended Version for old system using user_beancounter.&lt;br /&gt;
&lt;br /&gt;
Put it with the munin plugins and make a link for every&lt;br /&gt;
graph which should be produced named like:&lt;br /&gt;
&lt;br /&gt;
vebc_VALUENAME1_VALUENAME2_..._CTID&lt;br /&gt;
&lt;br /&gt;
e.g.: vebc_numflock_numpty_numsiginfo_101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
ATTR=`basename $0 | sed -e 's/^vebc_.*_//'`&lt;br /&gt;
STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
                echo yes&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
        if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
            cat /proc/bc/0/resources |&lt;br /&gt;
            while read str; do&lt;br /&gt;
&lt;br /&gt;
                vals=($str)&lt;br /&gt;
                echo ${vals[0]}&lt;br /&gt;
            done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
#       echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_title beancounter for CT$ATTR: $STATS&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_category CT$ATTR&amp;quot;&lt;br /&gt;
        echo &amp;quot;graph_info 'Container bean counters info'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        readme=&amp;quot;false&amp;quot;&lt;br /&gt;
        cat /proc/user_beancounters | while read myid stuff; do&lt;br /&gt;
&lt;br /&gt;
                line=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$myid&amp;quot; == &amp;quot;$ATTR:&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                        readme=&amp;quot;true&amp;quot;&lt;br /&gt;
                        line=&amp;quot;$stuff&amp;quot;&lt;br /&gt;
                        echo $line&lt;br /&gt;
                else&lt;br /&gt;
&lt;br /&gt;
                        loid=`echo $myid | sed -e 's/.*:/:/'`&lt;br /&gt;
&lt;br /&gt;
                        if [ &amp;quot;$loid&amp;quot; == &amp;quot;:&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                                readme=&amp;quot;false&amp;quot;&lt;br /&gt;
                        fi&lt;br /&gt;
                        if [ &amp;quot;$readme&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                                line=&amp;quot;$myid $stuff&amp;quot;&lt;br /&gt;
                        echo $line&lt;br /&gt;
                        fi&lt;br /&gt;
                fi&lt;br /&gt;
&lt;br /&gt;
        done | while read name value top warn max; do&lt;br /&gt;
&lt;br /&gt;
                okname=&amp;quot;dummy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                for statname in $STATS; do&lt;br /&gt;
&lt;br /&gt;
                        if [ &amp;quot;$name&amp;quot; == &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                                okname=$name&lt;br /&gt;
                        fi&lt;br /&gt;
&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$okname&amp;quot; != &amp;quot;dummy&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                        echo $okname.label $name&lt;br /&gt;
                        echo $okname.warning $warn&lt;br /&gt;
                        echo $okname.critical $max&lt;br /&gt;
                fi&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
        exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
readme=&amp;quot;false&amp;quot;&lt;br /&gt;
cat /proc/user_beancounters | while read myid stuff; do&lt;br /&gt;
&lt;br /&gt;
        line=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if [ &amp;quot;$myid&amp;quot; == &amp;quot;$ATTR:&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                readme=&amp;quot;true&amp;quot;&lt;br /&gt;
                line=&amp;quot;$stuff&amp;quot;&lt;br /&gt;
                echo $line&lt;br /&gt;
        else&lt;br /&gt;
&lt;br /&gt;
                loid=`echo $myid | sed -e 's/.*:/:/'`&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$loid&amp;quot; == &amp;quot;:&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                        readme=&amp;quot;false&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$readme&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                        line=&amp;quot;$myid $stuff&amp;quot;&lt;br /&gt;
                echo $line&lt;br /&gt;
                fi&lt;br /&gt;
        fi&lt;br /&gt;
done | while read name value x; do&lt;br /&gt;
&lt;br /&gt;
        okname=&amp;quot;dummy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        for statname in $STATS; do&lt;br /&gt;
&lt;br /&gt;
                if [ &amp;quot;$name&amp;quot; == &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                        okname=$name&lt;br /&gt;
                fi&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
        if [ &amp;quot;$okname&amp;quot; != &amp;quot;dummy&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
                echo $okname.value $value&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is not too performant but should do and the graphs are much&lt;br /&gt;
more readable then the first solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Another plugin from Jan Tomasek ==&lt;br /&gt;
Jan has posted another plugin on http://forum.openvz.org/index.php?t=msg&amp;amp;goto=15122, where I've fixed two things:&lt;br /&gt;
1. &amp;quot;exit 0&amp;quot; in the &amp;quot;config&amp;quot; block&lt;br /&gt;
2. Replaced &amp;quot;vals=($str); echo ${vals[0]}&amp;quot; with &amp;quot;echo ${str%% *}&amp;quot; (the former was causing problems I don't remember anymore)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Munin's plugin to monitor OpenVZ bean counters.&lt;br /&gt;
#&lt;br /&gt;
# $Log$&lt;br /&gt;
# Revision 1.3 2007/07/19 12:57:00 Jan Tomasek &amp;lt;jan@tomasek.cz&amp;gt;&lt;br /&gt;
# * rewrited to work with /proc/bc/&amp;lt;VEID&amp;gt;/resources instead of&lt;br /&gt;
# /proc/user_beancounters, that simplified code and result&lt;br /&gt;
# is also bit faster.&lt;br /&gt;
# * added references to OpenVZ wiki&lt;br /&gt;
# Revision 1.3.1 2008/05/13 01:26:00 Daniel Hahler &amp;lt;http://daniel.hahler.de/&amp;gt;&lt;br /&gt;
# * Minor fixes&lt;br /&gt;
#   - &amp;quot;exit 0&amp;quot; in &amp;quot;config&amp;quot; block&lt;br /&gt;
#   - Use &amp;quot;echo ${str%% *}&amp;quot; in &amp;quot;suggest&amp;quot;, instead of &amp;quot;vals=($str); echo ${vals[0]}&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Original revision taken from:&lt;br /&gt;
# http://wiki.openvz.org/Monitoring_openvz_resources_using_munin&lt;br /&gt;
#&lt;br /&gt;
#%# family=auto&lt;br /&gt;
#%# capabilities=autoconf suggest&lt;br /&gt;
&lt;br /&gt;
VEID=`basename $0 | sed -e 's/^vebc_.*_//'`;&lt;br /&gt;
STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;autoconf&amp;quot; ]; then&lt;br /&gt;
    if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
        echo yes&lt;br /&gt;
        exit 0&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;no (/proc/bc/0/resources not found)&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;suggest&amp;quot; ]; then&lt;br /&gt;
    if [ -r /proc/bc/0/resources ]; then&lt;br /&gt;
        cat /proc/bc/0/resources | while read str; do&lt;br /&gt;
        # Print everything before &amp;quot; &amp;quot;&lt;br /&gt;
        echo ${str%% *}&lt;br /&gt;
        done&lt;br /&gt;
        exit 0&lt;br /&gt;
    else&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -f /proc/bc/$VEID/resources ]; then&lt;br /&gt;
    exit 0;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;config&amp;quot; ]; then&lt;br /&gt;
    #echo &amp;quot;graph_order down up&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_title VE$VEID: $STATS&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_vlabel bean counters&amp;quot;&lt;br /&gt;
    echo &amp;quot;graph_category VE$VEID&amp;quot;&lt;br /&gt;
    # Note on URLs. General graph info is by munin version 1.2.5&lt;br /&gt;
    # accepted even with HTML code. But for value.info it escapes URL,&lt;br /&gt;
    # I expect that authors of munin will note that in future and put&lt;br /&gt;
    # escaping even for graph.info.&lt;br /&gt;
    echo &amp;quot;graph_info VE bean counters info. Documentation of the OpenVZ resource management is located at &amp;lt;a href=\&amp;quot;&lt;br /&gt;
http://wiki.openvz.org/UBC\&amp;quot;&amp;gt;http://wiki.openvz.org/UBC&amp;lt;/a&amp;gt;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    cat /proc/bc/$VEID/resources | while read name value top warn max stuff ; do&lt;br /&gt;
        for statname in $STATS; do&lt;br /&gt;
        if [ &amp;quot;$name&amp;quot; = &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
            URL=&amp;quot;http://wiki.openvz.org/$name&amp;quot;&lt;br /&gt;
            if [ &amp;quot;$warn&amp;quot; = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
                warn=$max&lt;br /&gt;
            fi&lt;br /&gt;
            echo $name.label $name&lt;br /&gt;
            echo $name.warning $warn&lt;br /&gt;
            echo $name.critical $max&lt;br /&gt;
            echo $name.info Description of this resource is located at $URL&lt;br /&gt;
        fi&lt;br /&gt;
        done&lt;br /&gt;
    done&lt;br /&gt;
    exit 0&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
cat /proc/bc/$VEID/resources | while read name value stuff ; do&lt;br /&gt;
    for statname in $STATS; do&lt;br /&gt;
    if [ &amp;quot;$name&amp;quot; = &amp;quot;$statname&amp;quot; ]; then&lt;br /&gt;
        echo $name&amp;quot;.value &amp;quot;$value;&lt;br /&gt;
    fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install this, you can use the following script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
FILE=`mktemp /tmp/ln-vebc-XXXXXX`&lt;br /&gt;
&lt;br /&gt;
cd /etc/munin/plugins&lt;br /&gt;
&lt;br /&gt;
for resources in kmemsize \&lt;br /&gt;
    lockedpages_privvmpages_shmpages_physpages_vmguarpages_oomguarpages \&lt;br /&gt;
    numproc \&lt;br /&gt;
    numtcpsock_numflock_numpty_numsiginfo_numothersock_numiptent \&lt;br /&gt;
    tcpsndbuf_tcprcvbuf_othersockbuf_dgramrcvbuf \&lt;br /&gt;
    dcachesize \&lt;br /&gt;
    numfile&lt;br /&gt;
do&lt;br /&gt;
    for VE in 0 `/usr/sbin/vzlist | sed &amp;quot;s/^ *//&amp;quot; |grep '^[0-9]' | cut -f 1 -d &amp;quot; &amp;quot;` ; do&lt;br /&gt;
        ln -sf /usr/local/share/munin/plugins/vebc_ &amp;quot;vebc_&amp;quot;$resources&amp;quot;_&amp;quot;$VE&lt;br /&gt;
        echo &amp;quot;vebc_&amp;quot;$resources&amp;quot;_&amp;quot;$VE &amp;gt;&amp;gt; $FILE&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# remove no longer deserved links (ie. links pointing to machines&lt;br /&gt;
# which were destroyed or stoped)&lt;br /&gt;
&lt;br /&gt;
find -type l -name vebc_\* | sed &amp;quot;s/\.\///&amp;quot; | while read LN; do&lt;br /&gt;
    if grep ^$LN$ $FILE &amp;gt;/dev/null; then&lt;br /&gt;
        true&lt;br /&gt;
    else&lt;br /&gt;
        rm $LN&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
rm $FILE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Blueyed</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Talk:Shared_webhosting&amp;diff=5844</id>
		<title>Talk:Shared webhosting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Talk:Shared_webhosting&amp;diff=5844"/>
		<updated>2008-04-28T20:23:55Z</updated>

		<summary type="html">&lt;p&gt;Blueyed: /* MySQL Socket Sharing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[User:Hvdkamer|Hvdkamer]] 08:23, 2 August 2006 (EDT)&lt;br /&gt;
I probably did something stupid, but how can I link from the HOWTO's to this page?&lt;br /&gt;
: If you want to link to the Category:HOWTO, you put it like this&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[:Category:HOWTO HOWTOs (i.e. this is link text)]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: If you want your article to be included into HOWTO category, you put it like this (in any part of the article, usually at the end):&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:HOWTO]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: --[[User:Kir|Kir]] 09:51, 2 August 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Rename? ==&lt;br /&gt;
&lt;br /&gt;
I suggest renaming the article to something like &amp;quot;Application separation&amp;quot; or &amp;quot;Services separation&amp;quot; since this is what you actually describe :) --[[User:Kir|Kir]] 10:22, 2 August 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
: Go ahead if you think it describes the content better. I started to investigate OpenVZ because I had serious problems with shared hosting. The minimal servers (it is only a rough draft at this moment) are the solution to that. You could see this as application seperation, but for the end-user it is a &amp;quot;normal&amp;quot; webhosting account. Only he/she can do much more and can not break his/her prison :-) --[[User:Hvdkamer|Hvdkamer]] 10:28, 2 August 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
:: May be to explain better my choice. After some serious problems with PHP (users who knew where an include with passwords lived, could see the content) I started to investigate the option of Apache threads with its own user credentials. That was the abonded project perchild. So there is not an easy technical solution. Also users hate safe_mode and open_basedir because it breaks there applications. They also want obscure CGI-scripts and all the things we administrators hate. I already used chrooted OpenSSH shell accounts. With the minimal servers I take that one step further. Now every user has total control (he/she can even be root) over his/her space.&lt;br /&gt;
&lt;br /&gt;
:: If I had to do my research again, I think I would still start with &amp;quot;shared webhosting&amp;quot;. Not &amp;quot;application seperation&amp;quot;. I think that my term, although not exactly correct, will draw more people to this site. I think of it as &amp;quot;user seperation&amp;quot;, but that is the whole point of OpenVZ? As said, its your Wiki, so change it if you think it is better :-) --[[User:Hvdkamer|Hvdkamer]] 10:40, 2 August 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: I changed the introduction to give some examples of the problems shared webhosting is facing. I think that you now could see were it is going? I'm still in the process of setting up this server. So I thought to start this page while I'm working on it. Because if you do it weeks later, most subtle points are lost :-) --[[User:Hvdkamer|Hvdkamer]] 11:42, 2 August 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Proxying ==&lt;br /&gt;
&lt;br /&gt;
I would suggest using [http://www.apsis.ch/pound/ Pound] as the Proxy Server running on your Frontend VE. Its a pretty lightweight and _fast_ Proxy. Besides proxying it does also support load balancing, failover and SSL.  I've been using it for various projects over the past few years, its proven to be pretty stable and reliable. --[[User:Torsten|Torsten]] 14:51, 9th Nov 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
== MySQL Socket Sharing ==&lt;br /&gt;
&lt;br /&gt;
There's a good guide, using &amp;quot;mount --bind&amp;quot; available at http://sudhaker.com/2008/04/isolated-mysql-installation-openvz-cluster/, but I couldn't get it to work.&lt;br /&gt;
Also the &amp;quot;ln /var/lib/vz/private/101/var/run/mysqld/mysqld.sock ...&amp;quot; mentioned in the article itself does not work for me: the mysqld.sock only appears in /vz/root/123, not /vz/private/123.&lt;br /&gt;
Additionally, &amp;quot;mysql -u root -p -S /vz/root/123/var/run/mysqld/mysqld.sock&amp;quot; fails with:&lt;br /&gt;
 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/vz/root/1234/var/run/mysqld/mysqld.sock' (111)&lt;br /&gt;
This is with Ubuntu Hardy (fixed kernel from Git).&lt;br /&gt;
[[User:Blueyed|Blueyed]] 16:23, 28 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Blueyed</name></author>
		
	</entry>
</feed>