Follow up https://forum.proxmox.com/threads/proxmox-ve-5-0-released.35451/#post-173777, I am playing with https://www.hetzner.com/dedicated-rootserver/ax60-ssd AMD Ryzen 7 1700X Octa-Core
So far, the system is stable ( see http://openbenchmarking.org/result/1707108-TR-HETZNERRY96)
I have installed Proxmox on top of Debian Stretch https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch.
Before upgrading to Proxmox, I had some issues with Debian stock kernel 4.9 (Ryzen support was added to 4.10 https://lists.debian.org/debian-user/2017/03/msg00063.html) ( smartctl test was hanging, low performance fio tests).
Fortunately, upgrading to Proxmox gave me the 4.10 kernel, and all the problems are gone.
It was failing to reboot randomly, but I knew that this issue could be fixed with GRUB_CMDLINE_LINUX=" rootdelay=15" in /etc/default/grub ( run update-grub afterwards) .
OVH Proxmox distribution comes with this setting, by default.
Now, benchmark time with LXC containers!
The testing minimal LXC Ubuntu Xenial has 1 core, memory 256MB, apache mpm event with 15 vhosts, php-fpm, ISPConfig with mariadb, without mail services.
Launching 65 identical containers, results an acceptable load average 10%. According to http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages, best load average for 8 cores Ryzen would be 8.
My target is to launch 130 identical containers. But the average load is between 16-20%.
Now, tuning time !
CPU units
For one container increase the number to 4096, and even higher 102400 ( all other default to 1024). Number is relative to the weights of all the other running containers. You can use this setting to prioritize some containers.
The load is identical. Of course, because this setting just give more resources to a priority container, during heavy load.
CPU limit
cpulimit: 0.5 The container has 1 core, but restrict overall CPU consumption to half a core. Even this should be expected, this settings didn’t modify the load.
lxc.cgroup.cpu.cfs_period_us
Of course, the settings from /var/lib/lxc/100/config are overridden by /etc/pve/lxc/100.conf.
I could override lxc.cgroup.cpu.cfs_period_us = 20000 in .conf. No gain.
Other settings
Other settings like limits.cpu.allowance, are not supported and parsed by proxmox See https://stgraber.org/2016/03/26/lxd-2-0-resource-control-412/
Question: Is there a way to decrease baseline load for 130 containers ? Of course, is possible further tuning, during additional load, but cannot reduce this baseline initial load.
On the other hand, trying to load other set of 130 Xenial containers with only apache2, gave me an average load of 0.7
The only solution is further fine tuning of the LXC container, for lower cpu consumption?
Thank you!
So far, the system is stable ( see http://openbenchmarking.org/result/1707108-TR-HETZNERRY96)
I have installed Proxmox on top of Debian Stretch https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch.
Before upgrading to Proxmox, I had some issues with Debian stock kernel 4.9 (Ryzen support was added to 4.10 https://lists.debian.org/debian-user/2017/03/msg00063.html) ( smartctl test was hanging, low performance fio tests).
Fortunately, upgrading to Proxmox gave me the 4.10 kernel, and all the problems are gone.
It was failing to reboot randomly, but I knew that this issue could be fixed with GRUB_CMDLINE_LINUX=" rootdelay=15" in /etc/default/grub ( run update-grub afterwards) .
OVH Proxmox distribution comes with this setting, by default.
Now, benchmark time with LXC containers!
The testing minimal LXC Ubuntu Xenial has 1 core, memory 256MB, apache mpm event with 15 vhosts, php-fpm, ISPConfig with mariadb, without mail services.
Launching 65 identical containers, results an acceptable load average 10%. According to http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages, best load average for 8 cores Ryzen would be 8.
My target is to launch 130 identical containers. But the average load is between 16-20%.
Now, tuning time !
CPU units
For one container increase the number to 4096, and even higher 102400 ( all other default to 1024). Number is relative to the weights of all the other running containers. You can use this setting to prioritize some containers.
The load is identical. Of course, because this setting just give more resources to a priority container, during heavy load.
CPU limit
cpulimit: 0.5 The container has 1 core, but restrict overall CPU consumption to half a core. Even this should be expected, this settings didn’t modify the load.
lxc.cgroup.cpu.cfs_period_us
Of course, the settings from /var/lib/lxc/100/config are overridden by /etc/pve/lxc/100.conf.
I could override lxc.cgroup.cpu.cfs_period_us = 20000 in .conf. No gain.
Other settings
Other settings like limits.cpu.allowance, are not supported and parsed by proxmox See https://stgraber.org/2016/03/26/lxd-2-0-resource-control-412/
Question: Is there a way to decrease baseline load for 130 containers ? Of course, is possible further tuning, during additional load, but cannot reduce this baseline initial load.
On the other hand, trying to load other set of 130 Xenial containers with only apache2, gave me an average load of 0.7
The only solution is further fine tuning of the LXC container, for lower cpu consumption?
Thank you!