Public bug reported:

When running autopkgtests in remote containers (necessary for moving
armhf autopkgtesting into the cloud) there is quite a noticeable
overhead. Running lxc exec with a no-op locally takes almost no time:

ubuntu@lxd-armhf2:~$ time lxc exec x1 whoami
root

real    0m0.076s
user    0m0.010s
sys     0m0.000s

But running this from a remote instance consistently has some 2.5 to 3.5
s overhead:

ubuntu@lxd-controller:~$ lxc launch armhf2:cloud/xenial/armhf armhf2:x1
ubuntu@lxd-controller:~$ time lxc exec --debug armhf2:x1  whoami </dev/null
DBUG[01-26|15:08:20] Posting 
{"command":["whoami"],"environment":{"HOME":"/root","TERM":"screen","USER":"root"},"interactive":false,"wait-for-websocket":true}
 to https://10.43.42.59:8443/1.0/containers/x1/exec 
DBUG[01-26|15:08:21] Raw response: 
{"type":"async","status":"OK","status_code":100,"operation":"/1.0/operations/d183dcc6-5e94-43eb-9df8-35c963e8f2be","resources":null,"metadata":{"fds":{"0":"c10a5a34c84bfe86bdd4bc35c6a94349874b880ffb62a5709d01f15b97d92410","1":"fa77b9e2909863bb07247bf726223e46d8bf362284bd1cf74221e23cccc94885","2":"58337bcca5403e942a1f77f6acd899b6db9ab980ad8bfbef1cfea9470d52eae1","control":"0d55d71f9f8ebad1b8538f1c6538f86d1b973c1b368a1805af5b471baa9bc5b8"}}}
 
root
DBUG[01-26|15:08:23] Got error getting next reader websocket: close 1000 , 
&{%!s(*os.file=&{1 /dev/stdout <nil>})} 
DBUG[01-26|15:08:23] Got error getting next reader websocket: close 1000 , 
&{%!s(*os.file=&{2 /dev/stderr <nil>})} 
DBUG[01-26|15:08:23] 1.0/operations/d183dcc6-5e94-43eb-9df8-35c963e8f2be/wait 
DBUG[01-26|15:08:24] Raw response: 
{"type":"sync","status":"Success","status_code":200,"metadata":{"created_at":"2016-01-26T15:08:21.388232Z","updated_at":"2016-01-26T15:08:23.814687Z","status":"Success","status_code":200,"resources":null,"metadata":{"return":0},"may_cancel":false}}
 
real    0m3.463s
user    0m0.177s
sys     0m0.021s

ubuntu@lxd-controller:~$ lxc remote list
[...]
| armhf2          | https://10.43.42.59:8443 | NO     |
[...]

I suppose this is due to the overhead of https://, establishing a new
connection every time etc. openssh has some "connection sharing" feature
which avoids the overhead of the initial negotiation and authentication.
This is rather complex, so maybe not something that we have in LXD, but
are there some tweaks to speed this up? E. g. switching off SSL, or
switching off authentication (I trust these boxes, and they are
firewalled rather tightly).

Thanks!

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: lxd 0.27-0ubuntu2
ProcVersionSignature: Ubuntu 4.3.0-7.18-generic 4.3.3
Uname: Linux 4.3.0-7-generic x86_64
ApportVersion: 2.19.3-0ubuntu3
Architecture: amd64
CurrentDesktop: Unity
Date: Tue Jan 26 16:08:48 2016
EcryptfsInUse: Yes
SourcePackage: lxd
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: lxd (Ubuntu)
     Importance: Wishlist
         Status: New


** Tags: amd64 apport-bug xenial

** Changed in: lxd (Ubuntu)
   Importance: Undecided => Wishlist

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1538174

Title:
  ways to speed up overhead of "lxc exec" on remote containers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lxd/+bug/1538174/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to