Some virtual servers are restricted to reduce the number of certain resources. The problem is that these restrictions can sometimes be too much and stop your server from running probably. To check this, use the following command.
> cat /proc/user_beancounters
This shows how many time you have him your maximum limits and had failures (
root@server:# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 27692: kmemsize 6359590 7697013 67108864 67108864 0 lockedpages 0 8 2048 2048 0 privvmpages 325931 765475 1179648 1572864 0 shmpages 19457 19473 21504 21504 12 dummy 0 0 0 0 0 numproc 92 100 100 100 96 physpages 27113 55372 0 9223372036854775807 0 vmguarpages 0 0 393216 393216 0 oomguarpages 27113 55372 393216 393216 0 numtcpsock 16 24 5000 5000 0 numflock 40 76 188 206 0 numpty 2 3 16 16 0 numsiginfo 0 5 256 256 0 tcpsndbuf 280064 486648 20480000 20480000 0 tcprcvbuf 262144 1283992 20480000 20480000 0 othersockbuf 59736 70776 1126080 2097152 0 dgramrcvbuf 0 16944 262144 262144 0 numothersock 83 93 5000 5000 0 dcachesize 464805 541843 3409920 3624960 0 numfile 1795 2065 5000 5000 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 14 119 128 128 0
You can see in this example that the server has failures both on the Number of Processes it was allowed to start and also the total size of shared memory.
- avnumproc – The average number of processes and threads.
- numproc – The maximal number of processes and threads the VE may create.
- numtcpsock – The number of TCP sockets (PF_INET family, SOCK_STREAM type). This parameter limits the number of TCP connections and, thus, the number of clients the server application can handle in parallel.
- numothersock – The number of sockets other than TCP ones. Local (UNIX-domain) sockets are used for communications inside the system. UDP sockets are used, for example, for Domain Name Service (DNS) queries. UDP and other sockets may also be used in some very specialized applications (SNMP agents and others).
- vmguarpages – The memory allocation guarantee, in pages (one page is 4Kb). VE applications are guaranteed to be able to allocate additional memory so long as the amount of memory accounted as privvmpages (see the auxiliary prarameters) does not exceed the configured barrier of the vmguarpages parameter. Above the barrier, additional memory allocation is not guaranteed and may fail in case of overall memory shortage.
- kmemsize – The size of unswappable kernel memory allocated for the internal kernel structures for the processes of a particular VE.
- tcpsndbuf – The total size of send buffers for TCP sockets, i.e. the ammount of kernel memory allocated for the data sent from an application to a TCP socket, but not acknowledged by the remote side yet.
- tcprcvbuf – The total size of receive buffers for TCP sockets, i.e. the ammount of kernel memory allocated for the data received from the remote side, but not read by the local application yet.
- othersockbuf – The total size of UNIX-domain socket buffers, UDP, and other datagram protocol send buffers.
- dgramrcvbuf – The total size of receive buffers of UDP and other datagram protocols.
- oomguarpages – The out-of-memory guarantee, in pages. Any VE process will not be killed even in case of heavy memory shortage if the current memory consumption (including both physical memory and swap) does not reach the oomguarpages barrier.
- lockedpages – The memory not allowed to be swapped out (locked with the mlock() system call), in pages.
- shmpages – The total size of shared memory (including IPC, shared anonymous mappings, and tmpfs objects) allocated by the process of a particular VE, in pages.
- privvmpages – The size of private (or potentially private) memory allocated by an application. The memory that is always shared among different applications is not included in this resource parameter.
- numfile – The number of files opened by all VE processes.
- numflock – The number of file locks created by all VE processes.
- numpty – The number of pseudo-terminals, such as an ssh session, the screen or xterm applications, etc.
- numsiginfo – The number of siginfo structures (essentially, this parameter limits the size of the signal delivery queue).
- dcachesize – The total size of dentry and inode structures locked in the memory.
- physpages – The total size of ram used by the VE processes. This is an accounting-only parameter currently. It shows the usage of RAM by the VE. For the memory pages used by several different VEs (mappings of shared libraries, for example), only the corresponding fraction of a page is charged to each VE. The sum of the physpages usage for all VEs corresponds to the total number of pages used in the system by all the accounted users.
- numiptent – The number of IP packet filtering entries.