-->
Parent Directory - CentOS-7-aarch64-GenericCloud-1606.qcow2.xz: 2016-07-06 20:22: 271M: CentOS-7-aarch64-GenericCloud-1610.qcow2.xz: 2016-11-04 18:21. CT - ploop, VM - ploop Qcow2 CT - ploop, VM - ploop Qcow2 Any Qcow2, vmdk, raw vhdx, vhd, pass-though (raw) Qcow2, raw disk vhd, raw disk Thin Disk Provisioning: Ability to over-commit overall disk space by dynamically growing the size of virtual disks based on actual usage rather than pre-allocating full size. Yes Yes Yes Yes. The QCOW2 (QEMU copy-on-write version 2) format is commonly used with the KVM hypervisor. It uses a sparse representation, so the image size is smaller than a raw format file of the same virtual disk. It can expand dynamically and supports Copy on Write. The AKI/AMI/ARI format was the initial image format supported by Amazon EC2. In macOS with the latest versions of Docker, used the raw format of the disk (previously was qcow2). And together with APFS filesystem in macOS, this file may take up less physical space than file size itself. Look at these two commands. Raw vs Qcow2: Qemu/KVM provides support for various image formats. The two major disk image formats, widely recommended and used are raw and qcow2. Thus, lets understand what they are and their differences. To begin with, one of the important part of virtualization is storage.
Containerization is an approach to software development in which an application or service, its dependencies, and its configuration (abstracted as deployment manifest files) are packaged together as a container image. The containerized application can be tested as a unit and deployed as a container image instance to the host operating system (OS).
Just as shipping containers allow goods to be transported by ship, train, or truck regardless of the cargo inside, software containers act as a standard unit of software deployment that can contain different code and dependencies. Containerizing software this way enables developers and IT professionals to deploy them across environments with little or no modification.
Containers also isolate applications from each other on a shared OS. Containerized applications run on top of a container host that in turn runs on the OS (Linux or Windows). Containers therefore have a significantly smaller footprint than virtual machine (VM) images.
Each container can run a whole web application or a service, as shown in Figure 2-1. In this example, Docker host is a container host, and App1, App2, Svc 1, and Svc 2 are containerized applications or services.
Figure 2-1. Multiple containers running on a container host
Another benefit of containerization is scalability. You can scale out quickly by creating new containers for short-term tasks. From an application point of view, instantiating an image (creating a container) is similar to instantiating a process like a service or a web app. For reliability, however, when you run multiple instances of the same image across multiple host servers, you typically want each container (image instance) to run in a different host server or VM in different fault domains.
In short, containers offer the benefits of isolation, portability, agility, scalability, and control across the whole application lifecycle workflow. The most important benefit is the environment's isolation provided between Dev and Ops.
This page is intended to be a collection of various performance tips/tweaks to help you get the most from your KVM virtual servers.
VirtIO
Use virtIO for disk and network for best performance.
- Linux has the drivers built in since Linux 2.6.24 as experimental, and since Linux 3.8 as stable
- FreeBSD has the drivers built in since 9.0
- Windows requires the Windows VirtIO Drivers to be downloaded and installed manually
Disk Cache
Note: The information below is based on using raw volumes, other volume formats may behave differently. |
Small Overview
Note: The overview below is dependent of the specific hardware used, i.e. a HW Raid with a BBU backed disk cache works just fine with 'writeback' mode, so take it just as an general overview.
Mode | Host Page Cache | Disk Write Cache | Notes |
---|---|---|---|
none | disabled | enabled | balances performance and safety (better writes) |
writethrough | enabled | disabled | balances performance and safety (better reads) |
writeback | enabled | enabled | fast, can loose data on power outage depending on hardware used |
directsync | disabled | disabled | safest but slowest (relative to the others) |
unsafe | enabled | enabled | doesn't flush data, fastest and unsafest |
cache=none seems to be the best performance and is the default since Proxmox 2.X.
cache=writethrough
cache=directsync.
cache=writeback
For read cache memory: try to add more memory in your guest, they already do the job with their buffer cache
cache=writethrough or directsync can be also quite fast if you have a SAN or HW raid controller with battery backed cache.
Using qcow2 backed disks and either cache=directsync or writethrough can make things slower.
some interestings articles :
cache mode and fsync : http://www.ilsistemista.net/index.php/virtualization/23-kvm-storage-performance-and-cache-settings-on-red-hat-enterprise-linux-62.html?start=2
Windows
USB Tablet Device
Docker Qcow2 Vs Raw Download
Disabling the USB tablet device in windows VMs can reduce idle CPU usage and reduce context switches. This can be done on the GUI. You can use vmmouse to get the pointer in sync (load drivers inside your VM).[1]
Use raw disk image and not qcow2
Consider using raw image or partition for a partition, especially with Microsoft SQL database files because qcow2 can be very slow under such type of load.
Trace Flag T8038 with Microsoft SQL Server
Setting the trace flag -T8038 will drastically reduce the number of context switches when running SQL 2005 or 2008.
Docker Qcow2 Vs Raw Dog Food
To change the trace flag:
Docker Qcow2 Vs Rawlings
- Open the SQL server Configuration Manager
- Open the properties for the SQL service typically named MSSQLSERVER
- Go to the advanced tab
- Append ;-T8038 to the end of the startup parameters option
For additional references see: Proxmox forum
Do not use the Virtio Balloon Driver
Docker Qcow2 Vs Raw Data
The Balloon driver has been a source of performance problems on Windows, you should avoid it.(see http://forum.proxmox.com/threads/20265-SOLVED-Hyper-Threading-vs-No-Hyper-Threading-Fixed-vs-Variable-Memory for the discussion thread)