Virtuozzo Server: The resource is currently unavailable :(
Every hardware and operating system has certain limits, but these are set much higher for virtual servers so that the virtual environment functions stably.

Last year I had massive problems with my V-Server, which practically completely limited the functionality of the server and the access was no longer really possible for me (-bash: fork: The resource is currently not available).
At first this problem was completely obscure. I just tried to start a Docker container. Only with the help of a restart and deliberately ending the container early was I able to regain control of the system.
According to my research, I ran into some kind of thread or process limit in the V-Server VM. A limit that I didn't know existed until now. Rather than I would have expected that I could even reach such limits with a few web applications. Especially since I hardly ever had a significantly high workload otherwise. If this error occurs, it is no longer possible to start new processes on the server. Existing processes must be reduced first. What can be difficult if, for example, Bash can no longer be started.
A remotely triggered restart also means that it is difficult to understand what was going on.
Every hardware and operating system has certain limits, but these are set much higher for virtual servers so that the virtual environment functions stably.
With cat /proc/user_beancounters
, the limits can be read out and you can see whether these limits have been reached. However, reaching the limit is only saved until the next restart. Which makes an analysis difficult if you no longer have access to the system due to the problem.
This limit is one of the factors used for resource management for Virtuozzo servers. And of course it also makes sense that there must be certain limits for a V-Server. For me, this is a factor that is completely non-transparent and makes it difficult to assess what is possible on my V server and what is not. It permanently shook my trust in the server. So I had to think about how to deal with it and it was clear that this server no longer met my expectations.
However, my research also showed that it would be more contemporary to use a KVM-based V-Server. There are no such limits with this, which is why many more processes can be started. I had rented my V-Server from Strato in the past.
So from there, a long process began to find a solution and the search for a new server. If I wanted to use a new server anyway, then I wanted to work out exactly what I wanted in the future. What was particularly important to me was a system that was as easy to use and maintain as possible.
- Plain Linux server or with management software again, like Plesk?
- Another server at Strato or somewhere else?
- Maybe even a privately hosted server via DynDNS or similar?
A lot of considerations went into this. I wasn't always happy with Plesk in the past. There have been some conflicts in the past that I have been dealt with. Just considering how often I had problems with the refresh rate of the locally hosted DNS server. Which regularly resulted in Let's Encrypt certificates not being able to be updated.
Setting up an SMTP server, which is also accepted by various mail providers, was also a bit of work back then, as was anti-spam etc.
Of course, there were a lot of new experiences that I had to gain.
Ultimately I decided again to use a V-Server at Strato. As it turned out, Strato has now set up a new KVM-based V-Server platform on which all new V-Servers are based on. However, it would take until the end of the year before I got around to taking such a step. The only disadvantage is that you cannot simply move the system from one virtualization software to another. This requires a new installation, so to speak.
I decided again to use an Ubuntu Server with Plesk as management software. The setup was much easier the second time (experience pays off). There are also very good options for transferring many things very quickly using Plesk's backup and recovery functions. From complete websites, databases, configuration up to complete email accounts.
I was also able to solve the DNS problem by no longer running the DNS server myself, but using the one from Strato (which is no option anyway, as there is no additional IPv6 address to book for the server yet).
I was able to avoid problems with updating Let's Encrypt certificates by simply not creating wildcard certificates, but creating one for each subdomain.
Whit this approach there is no need for TXT records with acme-challange
and therefore no issues with DNS. Verification is then simply done via HTTP.
I was finally able to find a way to set up an automated backup to my local NAS (True-NAS) and now I achieve somehow a maximum of security.
This is the first step for numerous new opportunities and projects - just like setting up this blog.