Bug 1300195

Summary: improve atomic stop performance
Product: Red Hat Enterprise Linux 7 Reporter: Alex Jia <ajia>
Component: atomicAssignee: Lokesh Mandvekar <lsm5>
Status: CLOSED NOTABUG QA Contact: atomic-bugs <atomic-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.4CC: dwalsh, walters
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-01-28 03:27:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alex Jia 2016-01-20 08:51:19 UTC
Description of problem:
To stop a running container using docker kill and atomic stop command, which will take 10 times real time than docker kill.

Version-Release number of selected component (if applicable):
# rpm -q docker atomic
docker-1.9.1-11.el7.x86_64
atomic-1.8-2.gita35ae18.el7.x86_64


How reproducible:
always

Steps to Reproduce:
1. atomic run rhel7/rhel-tools
2. time docker kill <container_id>
3. repeat 1
4. time atomic stop <container_id>

Actual results:

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
04e682b4026f        rhel7/rhel-tools    "/usr/bin/bash"     12 days ago         Up 5 seconds                            rhel-tools
# time docker kill 04e682b4026f
04e682b4026f

real	0m0.153s
user	0m0.025s
sys	0m0.007s

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
04e682b4026f        rhel7/rhel-tools    "/usr/bin/bash"     12 days ago         Up 2 seconds                            rhel-tools
# time atomic stop 04e682b4026f

real	0m10.266s
user	0m0.105s
sys	0m0.025s

Expected results:
Fix it.

Additional info:

Comment 2 Daniel Walsh 2016-01-27 15:34:22 UTC
atomic stop is doing a docker stop not a docker kill.

Comment 3 Daniel Walsh 2016-01-27 15:35:07 UTC
Atomic stop/docker stop gives the container time to cleanup, whereas docker kill just kills pid1.

Comment 4 Alex Jia 2016-01-28 03:27:05 UTC
(In reply to Daniel Walsh from comment #2)
> atomic stop is doing a docker stop not a docker kill.

Yes, I just double check it, the Atomic stop will call docker.Client.stop method, and there is no big time deviation between atomic stop and docker stop.


[cloud-user@atomic-00 ~]$ time sudo docker stop f86ba0e9290a
f86ba0e9290a

real	0m10.100s
user	0m0.018s
sys	0m0.011s

[cloud-user@atomic-00 ~]$ time sudo atomic stop f86ba0e9290a

real	0m10.614s
user	0m0.435s
sys	0m0.030s