Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
proxmox:improving_the_performance_of_the_qcow2_format [2019/02/05 15:52] adminproxmox:improving_the_performance_of_the_qcow2_format [2019/02/11 09:13] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +https://events.static.linuxfound.org/sites/events/files/slides/kvm-forum-2017-slides.pdf
 +
 +В статье рассказывается о внутренних механизмах кеширования формата **qcow2**. \\
 +На производительность очень сильно влияет размер таблиц L2, которые размещаются в памяти. \\
 +Вот тут объяснения и методики расчета размеров кешей: https://github.com/qemu/qemu/blob/master/docs/qcow2-cache.txt \\
 +Задать размер таблиц L2 можно с помощью опции **l2-cache-size** так:
 +<code>-drive file=img.qcow2,l2-cache-size=8M</code>
 +Дефолтный размер - **1Мb**, которого достаточно для диска размером **8Gb** с кластером **64Kb**. \\
 +Дефолтная формула для расчета размера таблиц L2 - **disk_size*8/cluster_size** \\
 +Вот табличка с замерами производительности диска **20Gb** при случайном чтении блоками **4K**:
 +^ L2 cache size ^ Average IOPS ^
 +| 1 MB          | 5100         |
 +| 1.5 MB        | 7300         |
 +| 2 MB          | 12700        |
 +| 2.5 Mb        | 63600        |
 +
 +Также рекомендуется очищать неиспользуемые элементы кеша с помощью опции **cache-clean-interval**:
 +<code>-drive file=hd.qcow2,cache-clean-interval=60 </code>
 +\\
 +Утверждается, что в **qemu** версии **2.10** и более новых реализован более эффективный алгоритм размещения данных кластерах (cluster allocation), который увеличивает IOPS от 15% до 60%. \\
 +
 +как написано тут: https://forum.proxmox.com/threads/qemu-2-5-setting-l2-cache-size-drive-option.27983/
 +в **Proxmox** можно добавить параметры к конфигурации диска с помощью **qm set**... Однако, такой диск не сможет нормально обслуживаться средствами proxmox и не сможет быть загрузочным. 
 +
 +
 +====== Working Hack ======
 +В файлике **/usr/share/perl5/PVE/QemuServer.pm** нужно найти строчку:
 +  $opts .= ",format=$format" if $format && !$drive->{format};
 +и после нее добавить чтобы получилось так:
 +    $opts .= ",format=$format" if $format && !$drive->{format};
 +    if ($format eq "qcow2") {
 +                $opts .= ",l2-cache-size=16M";
 +        }
  
  • proxmox/improving_the_performance_of_the_qcow2_format.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1