zoukankan      html  css  js  c++  java
  • [zz]Improve KVM performance

    In this post I would like to share two tips I have found that greatly improve the performance of KVM guests. Both tips work with Linux guests, although only the second tip will work with windows or BSD guests.

    With these tips you should notice an immediate improvement in performance including boot times, general performance, and responsiveness to inputs (mouse / keyboard).

    Kernel option noop

    With this tip we will use the kernel (boot) option elevator=noop to optimize your virtual hard drive I/O.

    For a technical discussion of this option, see this link . If you want a more detailed discussion see this second link.

    Grub 2

    Using any editor, open /etc/default/grub

    sudo -e /etc/default/grub

    Look for the line :

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

    Add elevator=noop at the end of the line

    GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash elevator=noop”

    Save your changes and exit your editor.

    update grub

    sudo update-grub

    Reboot – One of the few times you will need to reboot.

    Grub 1

    With most distros you edit /boot/grub/menu.lst

    Using any editor, open Using any editor, open /boot/grub/menu.lst

    Look for the kopts line:

    # kopt=root=/dev/sda1 ro

    Just add this option to the end of the line.

    # kopt=root=/dev/sda1 ro elevator=noop

    Note: DO NOT remove the # in the front of the line !!!

    Then update grub

    sudo update-grub

    Reboot – One of the few times you will need to reboot.

    Fedora is an exception

    Fedora is a bit odd about this. Fedora uses /boot/grub/grub.conf , and /boot/grub/menu.lst is a symbolic link to grub.conf .

    Specify the noop kernel option at installation

    You may specify grub options at installation : Fedora Wiki Installation Options

    Adding the noop kernel option post installation

    As far as I can see, this is a manual edit. You will need to manually edit the file /etc/grub/grub.conf and add elevator=noop to the end of the kernel line.

    Fedora wiki boot options

    Save your changes and reboot – One of the few times you will need to reboot.


    Cache writeback option

    Ibuclaw pointed this option out to me on IRC, and discusses in ibuclaw’s blog.

    From man qemu :

    By default, writethrough caching is used for all block device.
    This means that the host page cache will be used to read and write
    data but write notification will be sent to the guest only when the
    data has been reported as written by the storage subsystem.

    Writeback caching will report data writes as completed as soon as
    the data is present in the host page cache. This is safe as long
    as you trust your host. If your host crashes or loses power, then
    the guest may experience data corruption. When using the -snapshot
    option, writeback caching is used by default.

    The host page can be avoided entirely with cache=none. This will
    attempt to do disk IO directly to the guests memory. QEMU may
    still perform an internal copy of the data.

    Some block drivers perform badly with cache=writethrough, most
    notably, qcow2. If performance is more important than correctness,
    cache=writeback should be used with qcow2. By default, if no
    explicit caching is specified for a qcow2 disk image,
    cache=writeback will be used. For all other disk types,
    cache=writethrough is the default.

    So either using writeback or disabling the cache will improve performance.

    To use this option, rather then specifying a drive with -hda image.qcow we need to use the -drive option

    kvm -m 512 -drive file=image.qcow,cache=writeback,media=disk

    This option can be used with .iso as well ( note the media=cdrom )

    kvm -m 512 -drive file=fedora.iso,cache=writeback,media=cdrom

    Warning: Please note that in the event the host node crashes, data loss can result from this option.


    KSM

    This tip was added by morgan cox (see comments). KSM == Kernel SamePage Merging and was enabled by default on Fedora 12.

    See This KVM page from the Arch Wiki.

    For a more detailed description of KSM see IBM – Anatomy of Linux Kernel Shared Memory.

  • 相关阅读:
    JQuery 点击子控件事件,不会触发父控件的事件
    JQuery对Style和css设置
    2019vue学习视频(入门到精通)
    新建一个vue项目
    FIS3 构建
    node环境变量
    阿里云重启ssh
    msf 获取session 之后
    acccheck (暴力破解使用SMB协议的Windows密码)
    利用 Cut 指定输出内容
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2408926.html
Copyright © 2011-2022 走看看