Editing UBC failcnt reset
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 9: | Line 9: | ||
There can be many applications that read <code>/proc/user_beancounters</code>, and thus if you will reset it, you may have problems with those other apps. Consider what happens if you reset your sent/received packets/bytes statistics on a network interface — programs which track it may not function properly. | There can be many applications that read <code>/proc/user_beancounters</code>, and thus if you will reset it, you may have problems with those other apps. Consider what happens if you reset your sent/received packets/bytes statistics on a network interface — programs which track it may not function properly. | ||
− | Therefore, the proper usage of failcnt is not to check whether it is zero or not, but to check whether it is increased since the previous readout. In other words, check the difference, not the absolute value. | + | Therefore, the proper usage of failcnt is not to check whether it is zero or not, but to check whether it is increased since the previous readout. In other words, check the difference, not the absolute value. It is easy to write a simple script to do just that. |
+ | |||
+ | (See [[#Bash script]] for an example script) | ||
== OK, I understand, but I still want to clear failcnt! == | == OK, I understand, but I still want to clear failcnt! == | ||
Line 15: | Line 17: | ||
UBC failcnts are stored for the duration of the uptime of your container. Thus, restarting the container resets the counts. | UBC failcnts are stored for the duration of the uptime of your container. Thus, restarting the container resets the counts. | ||
− | The problem here is tcp time wait buckets can still | + | The problem here is tcp time wait buckets can still there after a container is stopped. You can check that by seeing the <code>held</code> column for <code>kmemsize</code> parameter. If it is not zero, that means you have to wait about 5 minutes in order to time wait buckets to expire, and the corresponding beancounter to be uncharged. |
If you still see failcnt not reset to 0 after more than 5 minutes after container is stopped, your kernel was likely compiled with CONFIG_UBC_KEEP_UNUSED=y, and in that case you'll have to switch off this option if you want to reset beancounters when container is restarted. | If you still see failcnt not reset to 0 after more than 5 minutes after container is stopped, your kernel was likely compiled with CONFIG_UBC_KEEP_UNUSED=y, and in that case you'll have to switch off this option if you want to reset beancounters when container is restarted. | ||
− | If you're sure your kernel was NOT compiled with the above option and it's not resetting failcnt after 5 minutes, it means there is a bug in UBC code. Please file a detailed [[bug report]] to [http:// | + | If you're sure your kernel was NOT compiled with the above option and it's not resetting failcnt after 5 minutes, it means there is a bug in UBC code. Please file a detailed [[bug report]] to [http://bugzilla.openvz.org bugzilla.openvz.org] |
− | |||
− | |||
− | |||
− | |||
− | == | + | == Bash script == |
This script can show the failcount deltas for one or all containers since last reset, and reset the failcounts for one or all containers. | This script can show the failcount deltas for one or all containers since last reset, and reset the failcounts for one or all containers. | ||
− | |||
− | |||
− | |||
=== Installation === | === Installation === | ||
Line 41: | Line 36: | ||
=== Show the beancounters === | === Show the beancounters === | ||
− | + | beanc show | |
this compares the contents of /proc/user_beancounters and the reference file, and shows you the delta value | this compares the contents of /proc/user_beancounters and the reference file, and shows you the delta value | ||
if no reference file exists, a copy of the user_beancounters file is used. | if no reference file exists, a copy of the user_beancounters file is used. | ||
to only show you the failcounts for 1 container, just add the ctid or container name to the command | to only show you the failcounts for 1 container, just add the ctid or container name to the command | ||
− | + | beanc show mailserver | |
− | + | beanc show 102 | |
=== Reset failcounters === | === Reset failcounters === | ||
− | + | beanc reset mailserver | |
− | + | beanc reset 102 | |
− | + | beanc reset --> will reset failcounters for all containers | |
Confirmation will be asked. | Confirmation will be asked. | ||
=== Show only failcounts > 0 === | === Show only failcounts > 0 === | ||
− | + | beanc brief | |
=== Initialize reference file === | === Initialize reference file === | ||
− | + | beanc init | |
This will check if the app-directory exists (/var/lib/beanc) and create it if necessary | This will check if the app-directory exists (/var/lib/beanc) and create it if necessary | ||
It also creates a reference file (/var/lib/beanc/user_beancounters) | It also creates a reference file (/var/lib/beanc/user_beancounters) | ||
− | |||
BEWARE, this command will overwrite any existing reference file ! | BEWARE, this command will overwrite any existing reference file ! | ||
=== beanc source code === | === beanc source code === | ||
− | + | <source lang=bash> | |
− | |||
− | <source lang=bash | ||
#!/bin/bash | #!/bin/bash | ||
##################################################################################################################### | ##################################################################################################################### | ||
Line 478: | Line 470: | ||
esac | esac | ||
</source> | </source> | ||
− | + | ||
+ | == Tool == | ||
+ | |||
+ | See {{Bug|1298}}. | ||
== External links == | == External links == | ||
* {{Forum|361}} | * {{Forum|361}} | ||
* {{Forum|497}} | * {{Forum|497}} | ||
− | |||
[[Category:FAQ]] | [[Category:FAQ]] | ||
[[Category:UBC]] | [[Category:UBC]] |