After testing Vyos on 2 Proxmox VMs on my NUC I have moved my primary vyos instance to a dedicated HW: Nitrowall - Celeron J3160 with 8 GBit of RAM. It is the same vyos configuration and version: 1.4-rolling-202204300743
While the network traffic is working well, the vyos configuration commands do not:
vyos@vyos:~$ configure
[edit]
vyos@vyos# time $(show>/dev/null)
real 0m24.267s
user 0m2.332s
sys 0m5.149s
During that time I observe cli-shell-api
and unionfs-fuse
taking a high CPU usage:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
95543 vyos 20 0 224796 2332 0 S 52.9 0.0 0:07.04 unionfs-fuse
95605 vyos 20 0 25036 11828 7856 S 17.6 0.1 0:04.11 cli-shell-api
I debugged it a little further and found that the same command takes way longer when running in configuration mode vs the operation mode:
vyos@vyos:~$ time cli-shell-api showCfg>/dev/null
real 0m0.688s
user 0m0.309s
sys 0m0.374s
vyos@vyos:~$ configure
[edit]
vyos@vyos# time cli-shell-api showCfg>/dev/null
real 0m25.923s
user 0m2.311s
sys 0m5.493s
[edit]
Unfortunately this is as well killing the performance of the Terraform provider I am helping to develop as each Terraform refresh does multiple API calls whereeach takes 25 seconds. This was taking just a second before in my NUC.
Is this the expected performance of a Celeron J3160 ?
Is cli-shell-api going away as part of the rewrite python+XML?
I will open a proper bug in Fabricator and try to help debugging - waiting for my new id to be approved there.