[Spice-devel] spice performance tweaking
Frediano Ziglio
fziglio at redhat.com
Thu Sep 29 11:21:42 UTC 2016
> Hi,
> I tried a virtual rhel7.3beta (server with gui) on a rhel7.3beta host.
> The host was a laptop to which I setup to use my old wifi router that only
> has 54Mbit so the bandwith was poor and unstable.
> Without the compression options the spice display was really bad.
> You could see the screen being rendered bit by bit.
> I tried this with the custom rpm and did not really see an improvement.
> I downgraded the spice-server and rebooted
> I added the compression options:
> <image compression='glz'/>
> <jpeg compression='always'/>
> <zlib compression='always'/>
> <streaming mode='all'/>
> Now the spice display was very usable and almost no artifacts.
> Only when moving the windows you can see tearing at the edges.
> Also started a glxgears window to see how it deals with that
> I applied the custom rpm and rebooted the host.
> After restarting the vm and logging into spice
> There is less tearing when moving the window.
Good! Thanks for the test! I'll work to make these changes integrated in a future version.
> So there is an improvement, but it's hard to tell how much by simply watching
> when draging the window.
> some details from our openvpn config
> the protocol has to be tcp.....
> centos 7.2 openvpn server settings:
> port secret-port-number
> proto tcp
> dev tun
> tun-mtu 1500
> ca /path/to/ca
> cert /path/to/cert
> key /path/to/key
> dh /path/to/dh
> server some.ip.address some.subnet.mask
> ifconfig-pool-persist ipp.txt
> keepalive 10 120
> comp-lzo
> user nobody
> group nobody
> persist-key
> persist-tun
> status /path/to/log
> verb 3
> mute 20
I would personally try different combination of compression/encryption.
Obviously you want encryption on the VPN but if you have also encryption on Spice this
is mainly wasting bandwidth and latency.
Also depending on the type of data VPN compression can be a bad idea.
I would try (if this is possible) to turn it off.
On the Windows side I tried to see what could cause the flicker issue.
It seems for some reason (unknown to me) some commands are trying to read some data back
from the card causing a 0.01 seconds delay (which could be one cause of the delay). No much
to suggest to improve this. Looks like the XPDM driver can be compiled using different way
to do the synchronization and looks like the new WDDM driver does the synchronization in
a different way (not clear why).
I don't think I'll have much more time to investigate into this.
I would suggest to open a ticket upstream so people don't forget this.
Frediano
> fedora 24 NetworkManager settings:
> [connection]
> id=our id for our top secret vpn
> uuid=xxxxxxxx.xxxx.xxx.xxx.xx
> type=vpn
> permissions=user:secretusernottellingyou:;
> secondaries=
> [vpn]
> remote-random=no
> connection-type=tls
> remote=remote.ip.address
> tunnel-mtu=1500
> comp-lzo=yes
> cert-pass-flags=1
> proto-tcp=yes
> port=<secret-port>
> mssfix=yes
> dev-type=tun
> ca=/path/to/ca
> key=/path/to/key
> cert=/path/to/crt
> service-type=org.freedesktop.NetworkManager.openvpn
> [ipv4]
> dns-search=
> ignore-auto-routes=true
> method=auto
> never-default=true
> route1=additional.route/mask
> route2=additional.route/mask
> [ipv6]
> addr-gen-mode=stable-privacy
> dns-search=
> method=auto
> Cheers
> Rob Verduijn.
> 2016-09-15 16:04 GMT+02:00 Rob Verduijn < rob.verduijn at gmail.com > :
> > Hello,
>
> > The performance fixes sound awesome.
>
> > I'm afraid I cannot test them in the environment with the low bandwith
> > setup
> > soon (maybe next week, but don't hold your breath)
>
> > I'm going to build a local test setup to see if this is improving some of
> > the
> > issues. I got a laptop running the rhel7.3 beta, let's see how that
> > performs.
>
> > Rob Verduijn
>
> > 2016-09-15 13:31 GMT+02:00 Frediano Ziglio < fziglio at redhat.com > :
>
> > > I saw you are using CentOS 7. I built the package with RHEL 7 (they are
> > > binary compatible).
> >
>
> > > About the testing just which normal usage you should see improvements in
> > > bandwidth and
> >
>
> > > reactivity.
> >
>
> > > Changes from current CentOS package:
> >
>
> > > - used a newer version, there are couple of changes that decrease
> > > latency;
> >
>
> > > - additional patches to improve bandwidth usage (for small drawing this
> > > should decrease
> >
>
> > > bandwidth usage by a 15-20%);
> >
>
> > > - additional patch to decrease a bandwidth limitation due to a peculiar
> > > half-duplex usage
> >
>
> > > of spice protocol (this is clearly visible with high latency
> > > connections);
> >
>
> > > - additional patch to decrease packet fragmentation due to TCP_NODELAY
> > > usage.
> >
>
> > > Alternatively would be helpful for us to get a local reproduction of the
> > > problem.
> >
>
> > > OpenVPN configuration files would be helpful (we don't need any security
> >
>
> > > detail like keys, ip, host or system names, just to understand the type
> > > of
> > > VPN,
> >
>
> > > encryption parameters, compression, additional latency introduced and so
> > > on).
> >
>
> > > The fact that you are not able to get a record from the guest means that
> > > the
> > > QXL
> >
>
> > > (guest <-> server) protocol how the spice-server is handling guest
> > > command
> > > is
> >
>
> > > fine. The fact that on the client you can see clearly such slowness is
> > > due
> > > to
> > > spice
> >
>
> > > protocol, the connection/vpn, some spice-server implementation and
> > > possibly
> >
>
> > > client implementation too. Unfortunately too much stuff to be able to
> > > point
> > > the
> >
>
> > > finger to one of them.
> >
>
> > > I tried some test and did this:
> >
>
> > > - opened task manager on Windows 7;
> >
>
> > > - switched to performance tab;
> >
>
> > > - maximized task manager;
> >
>
> > > - double clicked on CPU usage to get only CPU usage and history.
> >
>
> > > When CPU usage change I can see the flickering on CPU usage but not on
> >
>
> > > the history graphs. It this the kind of flickering you are noticing?
> >
>
> > > Frediano
> >
>
> > > > For which distro is that package ?
> > >
> >
>
> > > > Centos 7.2 ? rhel7.3beta or fedora24 ?
> > >
> >
>
> > > > Rob Verduijn
> > >
> >
>
> > > > 2016-09-14 15:59 GMT+02:00 Frediano Ziglio < fziglio at redhat.com > :
> > >
> >
>
> > > > > Could you test at least? Would be very helpful. We could then
> > > > > backport
> > > > > some
> > > > > improvements.
> > > >
> > >
> >
>
> > > > > Frediano
> > > >
> > >
> >
>
> > > > > > thanx,I'll stick with the centos packages,
> > > > >
> > > >
> > >
> >
>
> > > > > > I need a very good reason before I start using beta packages.
> > > > >
> > > >
> > >
> >
>
> > > > > > And a nice to have feature is not one of them.
> > > > >
> > > >
> > >
> >
>
> > > > > > Also I dug in to the openvpn tweaks and it seems that all of them
> > > > > > are
> > > > > > related
> > > > > > to udp tunnels.
> > > > >
> > > >
> > >
> >
>
> > > > > > Performance is sadly rather low when you have to use tcp (like me)
> > > > > > because
> > > > > > the firewall is managed by a third party.
> > > > >
> > > >
> > >
> >
>
> > > > > > Rob Verduijn
> > > > >
> > > >
> > >
> >
>
> > > > > > 2016-09-14 15:49 GMT+02:00 Frediano Ziglio < fziglio at redhat.com > :
> > > > >
> > > >
> > >
> >
>
> > > > > > > > Hello,
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > I'm trying to improve my spice performance on a kvm host/guest.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > It's currently rather slow and I can see screens beeing build
> > > > > > > > up,
> > > > > > > > and
> > > > > > > > delays
> > > > > > > > when draging windows.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > It's being tunneled through openvpn, which is set to use tcp.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > tcp required because of the firewall which is maintained by 3rd
> > > > > > > > party.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > I have full access to the kvm host, kvm guest and openvpn
> > > > > > > > server.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > Have you got any tips so that I can improve spice performance ?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > I alrready am running tuned with the virtual-guest profile for
> > > > > > > > guests
> > > > > > > > and
> > > > > > > > host profile for the host.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > All systems are runnning CentOS 7
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > Any tips for :
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > - the KVM host ?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > - the KVM guest ?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > - the openvpn server ?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > Cheers
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > > Rob Verduijn
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > Hi,
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > can you try version at https://www.datafilehost.com/d/b07f008e ?
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > The sha1 hash (please check it) is
> > > > > > > 0e2191c363e109475aeb2bff401e699f0a07a795.
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > Be prepare for the rollback, it's not a version meant for
> > > > > > > production
> > > > > > > usage.
> > > > > >
> > > > >
> > > >
> > >
> >
>
> > > > > > > Frediano
> > > > > >
> > > > >
> > > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160929/3dcd3383/attachment-0001.html>
More information about the Spice-devel
mailing list