Docker Desktop Windows - Abysmal performance in AMD system? - docker-desktop

I've recently assembled a new AMD Desktop, to replace an older Dell Latitude E7540 laptop.
The AMD Desktop:
Ryzen 3 3100 # 3.8GHz (4C/8T), 32GB DDR4 3600 CL17 RAM, Corsair P600
Gen4 SSD
The DELL Laptop:
Dell Latitude E7540: Intel I7-5600U # 2.6GHz (2C/4T), 16 MB RAM DDR3 1600, Samsung mSATA PM851
On the new AMD Desktop, when executing a docker build command, two situations occur:
The performance is dreadful, even building a simple image, it takes a long time for the command to start. After starting, it takes a long long time to complete (when it completes)
The build window crashes almost 50% of the time.
The benchmarks indicate that the new AMD Desktop is 3.5x faster at single core, and 6x faster at multicore.
As such, I was expecting a much better performance with the new AMD Desktop.
Unfortunately, that's not the case, and for the same Dockerfile (which generates a very big image):
The Dell starts faster
The Dell completes faster (10m vs 30m)
On the Dell, the build window never crashes.
The only difference between both systems is that one is an Intel platform, the new one an Ryzen 3 AMD.
Environment Details are the same on both machines:
Windows Version: Windows 10 Ent. 19049
Docker Desktop Version: Docker 3.0.0
What can explain this abysmal performance on Docker-Desktop on the new AMD system?

After a few troubling days, i can confirm that the problem is not AMD related.
The culprit is the Antivirus, that when ON, its scanning the files used by Docker, which cause all the problems i've described.
Docker documentation states how to disable the antivirus to scan Docker related files:
https://docs.docker.com/engine/security/antivirus/
When antivirus software scans files used by Docker, these files may be locked in a way that causes Docker commands to hang.
One way to reduce these problems is to add the Docker data directory (/var/lib/docker on Linux, %ProgramData%\docker on Windows Server, or $HOME/Library/Containers/com.docker.docker/ on Mac) to the antivirus’s exclusion list. However, this comes with the trade-off that viruses or malware in Docker images, writable layers of containers, or volumes are not detected. If you do choose to exclude Docker’s data directory from background virus scanning, you may want to schedule a recurring task that stops Docker, scans the data directory, and restarts Docker.

Related

why ninja build and msbuild are unable to utilize more than roughly 50%?

I have a Lenovo Z51-70 laptop (Windows10). it had 8GB RAM by default and SSHD. When I used to compile large projects 20K c++ files Task Manager always showed 90-100% CPU utilization. A week back I upgraded SSHD to SSD and 8GB RAM to 16GB RAM for gaining speed in the compilation. But build time hasn't improved (it is almost same) but Task Manager always shows roughly 50% CPU utilization. Why it is not able to utilize anyway near 90-100%? and why same build on SSHD & 8GB RAM always used to consume roughly 90-100% CPU utilization? It is not specific to a particular build system, i have tried MSBUILD, NINJA. All build system show same CPU utilization. I have tried to compile different projects for excluding any reason which may be the project-specific.
Any thoughts?

Server 2016 VM does not boot after hyper-v install

I am using VMWare Workstation 14, with Windows Server 2016 installed on it. A few weeks ago in my server class, we had an in class lab to setup a Nano Server. I successfully got that up and running and installed Hyper-V and loaded it into it. Started up, and signed in. Then two days later at class again, the VM just freezes at the windows logo with circling white dots.
I have installed multiple VMs trying to get it up and running. Always the same result. I have the virtualization enable in BIOS on my laptop.
I have a VM snapshot I just took before installing Hyper-V, installed the role, rebooted, and again, stops at the windows logo with circling dots.
I don't know where to check if there is an issue, or if something is configured incorrectly. I am just looking for some help and ideas on what I should check. I do also have the virtualization stuff within VMWare enabled under the properties for the VM.
System details:
Asus GL502VMZ
Version 10.0.17134 Build 17134
Processor Intel(R) Core(TM) i7-7700HQ CPU # 2.80GHz, 2808 Mhz, 4 Core(s), 8 Logical Processor(s)
Installed Physical Memory (RAM) 16.0 GB
NVIDIA GeForce GTX 1060 3GB
Have you tried uninstalling the anti-virus? I was running into the same issue in my server class (Using VMware to run server 2016 which we where using to nest hyper-v)until a class mate said he didn't have the AV (we where looking for differences on why his worked and mind didn't). I removed my AV (was AVG) now the server no longer stalls at the boot screen.
Just my 2 cents that may help someone in the future. I had the same issue on an HP Proliant ML310e that worked fine for the full install until enabling the Hyper-V role, then it would hang at the Windows icon screen with the swirling dots. I was able to get past that by disabling Intel VT-d in the bios. Not a particularly good solution, but it allowed the system to boot successfully and run normally.

VMware Player VM - 1 core CPU limitation

I'm using a VM with VMware Player to write code and compile.
As my current program is huge, the compilation takes a while to be done (upto 5 minutes)
using 25% of my 4 cores CPU on my host = 100% of one core.
It seems that the VM is limited to use 1 single core.
Is there a way to optimize the number of cores a VM can use?
I'd like to use 50% or 75% of my 4 cores CPU.
Thanks
It sounds like you're limited by the number of parallel build tasks you can run, not the VM CPU configuration, e.g., by default, make will run a single step at a time. Try running several steps in parallel, e.g., run make -j4 or equivalent for your build system.
On a separate note, a VM may be more overhead for you than you might like; consider using Docker to host your development environment.

OpenCl: Minimal configuration to work with AMD GPU

Suppose we have AMD GPU (for example Radeon HD 7970) and minimal linux system without X and etc.
What should be installed and what should be launched and how it should be launched to have proper OpenCL environment? In best case it should be headless environment.
Requirements to environment:
GPU visible by OpenCL programs (clinfo for example)
It is possible to monitor temperature and set fan speed (for example using aticonfig).
P.S. Simple install Xserver, catalyst and run X :0 won't work properly. See X server with fglrx driver won't responce after exactly 49 accesses to X server
UPD When you use AMD GPU on linux, OpenCL applications don't see AMD GPU if Xserver isn't launched.
I had similar problem, asked a question and had succeed solving it by myself.
For R9 290 cards and newer i assume you have:
Built kernel 4.14 or later, with amdgpu driver support. There is option in linux kernel config under Graphics Support.
All nesesary firmware .bin blobs are incorporated. To do so easily you may edit buildroot/package/linux-firmware/* contents for buildroot, and manually add BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU option by yourself, along with BR2_PACKAGE_LINUX_FIRMWARE_RADEON (use it as a template). Actually we should post that update to their git.
When booting you should see appropriate dmesg messages about amdgpu initializing, per each adapter. And screen mode should be switched. If you still see large console text and no videomode switch occured during init then you have problem in kernel/firmware, you should fix that out first.
To answer second question, controlling fan speeds/temperatures is achieved via powerplay filesystem, eg /sys/class/drm/.. like this:
cd sys/class/drm/card0/device/hwmon/hwmon0
echo 1 > pwm1_enable
cat pwm1_max > pwm1
You may dig a bit deeper and find powertune parameters nearby, in device folder.
But instead of using /sys/class/drm/card0/device/pp_dpm_sclk i highly recommend flashing that values directly in cards' bios. Set with required frequencies/voltages, as it is more reliable, stable and api independent - you either init it, or not :)
PS. Also put away 7970, buy something a bit newer. I dont know if it is still supported in the latest drivers, we havent such an old card by hands right now. I tested 290, 390, 480, 580 cards series. (for R9 270, miner fails to build cl code). For older cards better to use some older software <=16.40 and maybe a bit older kernel <=4.13

How to optimize Visual Studio 2010 compile performance when run in a virtual machine?

It looks that Visual Studio 2010 compiles extremely slow when it is inside a virtual machine and the code is on a network share.
I cannot install it outside a virtual machine not I can keep the code on a local disk.
Current configuration data:
host: OS X 10.7 Lion, 6GB RAM, 6 CPUs (not doing much other than running the guest)
guest: Windows 7 Enterprise, 3GB RAM, 4 CPUs
the huge codebase is located on network share on the guest
So, what can I co to improve the compilation speed?
The problem seems to me in slow access to sources (you can check this in task manager, if the total CPU load is << 100% = even one CPU is not fully used). What kind of network share is used? How fast is network between Host and Storage (both bandwidth and latency).
You really should to put sources locally. You should try putting them on ramdisk or store on local disk.
The problem can be in the virtualizing solution. AFAIK, MSVC have command-line version, MSBuild http://msdn.microsoft.com/en-us/library/f35ctcxw.aspx. May be it is possible to start msbuild from wine?