diff --git a/files/gitlab-config-template/gitlab.rb.template b/files/gitlab-config-template/gitlab.rb.template
index 6e165ab15c993618d60c4761ab8e5729afc69fc6_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU=..fd86d870775ee8a141d9ae1e1e519da411b5cab7_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU= 100644
--- a/files/gitlab-config-template/gitlab.rb.template
+++ b/files/gitlab-config-template/gitlab.rb.template
@@ -2493,7 +2493,8 @@
 #     hierarchy_root: 'gitaly',
 #     memory_bytes: 1048576,
 #     cpu_shares: 512,
+#     cpu_quota_us: 400000
 #     repositories: {
 #       count: 1000,
 #       memory_bytes: 12884901888,
 #       cpu_shares: 128,
@@ -2496,7 +2497,8 @@
 #     repositories: {
 #       count: 1000,
 #       memory_bytes: 12884901888,
 #       cpu_shares: 128,
+#       cpu_quota_us: 200000
 #     },
 #   },
 #   concurrency: [
diff --git a/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb b/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb
index 6e165ab15c993618d60c4761ab8e5729afc69fc6_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRhbHkvcmVjaXBlcy9naXRhbHlfc3BlYy5yYg==..fd86d870775ee8a141d9ae1e1e519da411b5cab7_c3BlYy9jaGVmL2Nvb2tib29rcy9naXRhbHkvcmVjaXBlcy9naXRhbHlfc3BlYy5yYg== 100644
--- a/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb
+++ b/spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb
@@ -61,6 +61,7 @@
   let(:cgroups_hierarchy_root) { 'gitaly' }
   let(:cgroups_memory_bytes) { 2097152 }
   let(:cgroups_cpu_shares) { 512 }
+  let(:cgroups_cpu_quota_us) { 400000 }
   let(:cgroups_repositories_count) { 10 }
   let(:cgroups_repositories_memory_bytes) { 1048576 }
   let(:cgroups_repositories_cpu_shares) { 128 }
@@ -64,6 +65,7 @@
   let(:cgroups_repositories_count) { 10 }
   let(:cgroups_repositories_memory_bytes) { 1048576 }
   let(:cgroups_repositories_cpu_shares) { 128 }
+  let(:cgroups_repositories_cpu_quota_us) { 200000 }
   let(:pack_objects_cache_enabled) { true }
   let(:pack_objects_cache_dir) { '/pack-objects-cache' }
   let(:pack_objects_cache_max_age) { '10m' }
@@ -185,6 +187,50 @@
     end
   end
 
+  context 'sets cgroups settings' do
+    before do
+      stub_gitlab_rb(
+        gitaly: {
+          configuration: {
+            cgroups: {
+              mountpoint: cgroups_mountpoint,
+              hierarchy_root: cgroups_hierarchy_root,
+              memory_bytes: cgroups_memory_bytes,
+              cpu_shares: cgroups_cpu_shares,
+              cpu_quota_us: cgroups_cpu_quota_us,
+              repositories: {
+                count: cgroups_repositories_count,
+                memory_bytes: cgroups_repositories_memory_bytes,
+                cpu_shares: cgroups_repositories_cpu_shares,
+                cpu_quota_us: cgroups_repositories_cpu_quota_us,
+              }
+            },
+          },
+        }
+      )
+    end
+
+    it 'populate gitaly cgroups' do
+      cgroups_section = Regexp.new([
+        %r{\[cgroups\]},
+        %r{mountpoint = "#{cgroups_mountpoint}"},
+        %r{hierarchy_root = "#{cgroups_hierarchy_root}"},
+        %r{memory_bytes = #{cgroups_memory_bytes}},
+        %r{cpu_shares = #{cgroups_cpu_shares}},
+        %r{cpu_quota_us = #{cgroups_cpu_quota_us}},
+        %r{\[cgroups.repositories\]},
+        %r{count = #{cgroups_repositories_count}},
+        %r{memory_bytes = #{cgroups_repositories_memory_bytes}},
+        %r{cpu_shares = #{cgroups_repositories_cpu_shares}},
+        %r{cpu_quota_us = #{cgroups_repositories_cpu_quota_us}},
+      ].map(&:to_s).join('\s+'))
+
+      expect(chef_run).to render_file(config_path).with_content { |content|
+        expect(content).to match(cgroups_section)
+      }
+    end
+  end
+
   context 'with new gitconfig' do
     it 'raises an error with legacy gitconfig set' do
       stub_gitlab_rb(