{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/13250","labels_url":"https://api.github.com/repos/docker/docker/issues/13250/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/13250/comments","events_url":"https://api.github.com/repos/docker/docker/issues/13250/events","html_url":"https://github.com/docker/docker/issues/13250","id":76713864,"number":13250,"title":"layer preparation in daemon causes slow v2 push performance","user":{"login":"jarus","id":110274,"avatar_url":"https://avatars.githubusercontent.com/u/110274?v=3","gravatar_id":"","url":"https://api.github.com/users/jarus","html_url":"https://github.com/jarus","followers_url":"https://api.github.com/users/jarus/followers","following_url":"https://api.github.com/users/jarus/following{/other_user}","gists_url":"https://api.github.com/users/jarus/gists{/gist_id}","starred_url":"https://api.github.com/users/jarus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jarus/subscriptions","organizations_url":"https://api.github.com/users/jarus/orgs","repos_url":"https://api.github.com/users/jarus/repos","events_url":"https://api.github.com/users/jarus/events{/privacy}","received_events_url":"https://api.github.com/users/jarus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/group/distribution","name":"group/distribution","color":"F6FBFF"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":19,"created_at":"2015-05-15T12:31:43Z","updated_at":"2015-08-24T18:04:42Z","closed_at":null,"body":"Hi,\r\n\r\nI build really big docker images (16GB) which contains a big application. While testing of the new docker-distribution registry I noticed that the push is much slower than a push again the old python registry. Both registry use the local file system as storage.\r\n\r\nv2: 38min\r\nv1: 23min\r\n\r\n```\r\ndocker version\r\nClient version: 1.6.2\r\nClient API version: 1.18\r\nGo version (client): go1.4.2\r\nGit commit (client): 7c8fca2-dirty\r\nOS/Arch (client): linux/amd64\r\nServer version: 1.6.2\r\nServer API version: 1.18\r\nGo version (server): go1.4.2\r\nGit commit (server): 7c8fca2-dirty\r\nOS/Arch (server): linux/amd64\r\n```\r\n\r\n```\r\nContainers: 4\r\nImages: 134\r\nStorage Driver: btrfs\r\n Build Version: Btrfs v3.17.1\r\n Library Version: 101\r\nExecution Driver: native-0.2\r\nKernel Version: 4.0.3\r\nOperating System: CoreOS 681.0.0\r\nCPUs: 10\r\nTotal Memory: 62.93 GiB\r\nName: ---\r\nID: SBM4:4LPG:PVYM:WAH3:Q7LT:FN23:JZSL:Q6IM:7E2I:SWGT:T2RJ:LWWJ\r\n```\r\n\r\nKernel: 4.0.3\r\n\r\nEnvironment details (AWS, VirtualBox, physical, etc.):\r\nThe registries are on another host  (physical) and both are connected via 1Gbit and the only other application which used bandwidth was sshd. In my eyes the main time-sink is the \"buffering to disk\" process which consumes lot more time than before with registry v1.\r\n\r\nHow reproducible:\r\nPush a very big docker image again v2 registry.\r\n\r\nActual Results:\r\nSlower push time than before with v1 registry.\r\n\r\nExpected Results:\r\nFast or equal push time with v1 registry.\r\n\r\nKind regards\r\nChristoph\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/134320013","html_url":"https://github.com/docker/docker/issues/13250#issuecomment-134320013","issue_url":"https://api.github.com/repos/docker/docker/issues/13250","id":134320013,"user":{"login":"Andrei-Pozolotin","id":1622151,"avatar_url":"https://avatars.githubusercontent.com/u/1622151?v=3","gravatar_id":"","url":"https://api.github.com/users/Andrei-Pozolotin","html_url":"https://github.com/Andrei-Pozolotin","followers_url":"https://api.github.com/users/Andrei-Pozolotin/followers","following_url":"https://api.github.com/users/Andrei-Pozolotin/following{/other_user}","gists_url":"https://api.github.com/users/Andrei-Pozolotin/gists{/gist_id}","starred_url":"https://api.github.com/users/Andrei-Pozolotin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Andrei-Pozolotin/subscriptions","organizations_url":"https://api.github.com/users/Andrei-Pozolotin/orgs","repos_url":"https://api.github.com/users/Andrei-Pozolotin/repos","events_url":"https://api.github.com/users/Andrei-Pozolotin/events{/privacy}","received_events_url":"https://api.github.com/users/Andrei-Pozolotin/received_events","type":"User","site_admin":false},"created_at":"2015-08-24T18:04:42Z","updated_at":"2015-08-24T18:04:42Z","body":"+1"}}