{"id":29542,"date":"2016-07-22T08:55:38","date_gmt":"2016-07-22T08:55:38","guid":{"rendered":"http:\/\/systemadmin.es\/?p=5102"},"modified":"2016-07-22T08:55:38","modified_gmt":"2016-07-22T08:55:38","slug":"limitar-numero-de-cores-disponibles-mediante-cgroups","status":"publish","type":"post","link":"https:\/\/icloud.pe\/blog\/limitar-numero-de-cores-disponibles-mediante-cgroups\/","title":{"rendered":"Limitar n\u00famero de cores disponibles mediante cgroups"},"content":{"rendered":"<p>Mediante cgroups podemos <strong>limitar el n\u00famero de cores disponibles para un determinado proceso<\/strong>, vamos a ver c\u00f3mo.<\/p>\n<p><!-- more --><\/p>\n<p>Para hacer los cambios persistentes, deberemos editar el fichero <strong>\/etc\/cgconfig.conf<\/strong> , por ejemplo:<\/p>\n<pre>\r\ngroup vuitcores {\r\n    perm {\r\n        admin {\r\n            uid = root;\r\n        }\r\n        task {\r\n            uid = jprats;\r\n        }\r\n    }\r\n    cpuset {\r\n\tcpuset.mems=0;\r\n        cpuset.cpus=\"0-7\";\r\n    }\r\n}\r\n<\/pre>\n<p>Mediante dicha sintaxi estamos definiendo:<\/p>\n<ul>\n<li>Un grupo llamado: <strong>vuitcores<\/strong><\/li>\n<li>Opcionalmente, podemos definir permisos mediante la directiva <strong>perm<\/strong><\/li>\n<li>Limitamos el cpuset (<strong>mems<\/strong> y <strong>cpus<\/strong> son options obligaatorias):\n<ul>\n<li><strong>cpuset.mems<\/strong>: Listado de nodos de memoria que permitimos acceso (para NUMA)<\/li>\n<li><strong>cpuset.cpus<\/strong>: Listado de CPUs que permitimos acceso a este cgroup<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Reiniciamos el servicio para aplicar los cambios:<\/p>\n<pre>\r\n# \/etc\/init.d\/cgconfig restart\r\nStopping cgconfig service:                                 [  OK  ]\r\nStarting cgconfig service:                                 [  OK  ]\r\n<\/pre>\n<p>Mediante <strong>nproc<\/strong> podremos validar el n\u00famero de cores disponibles para el proceso:<\/p>\n<pre>\r\n# \/usr\/bin\/nproc\r\n32\r\n<\/pre>\n<p>Para ejecutar una tarea en un <strong>cgroup<\/strong> deberemos usar <strong>cgexec<\/strong> indicando el grupo mediante la <strong>opci\u00f3n -g<\/strong>:<\/p>\n<pre>\r\n# cgexec -g cpuset:vuitcores \/usr\/bin\/nproc\r\n8\r\n<\/pre>\n<p>Podemos apreciar que en este caso <strong>nproc<\/strong> nos <strong>reporta 8 cores<\/strong> en lugar de los 32 que tiene el equipo.<\/p>\n<p>\tTags: <a href=\"http:\/\/systemadmin.es\/tag\/cgroups\" title=\"cgroups\" rel=\"tag\">cgroups<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mediante cgroups podemos limitar el n&uacute;mero de cores disponibles para un determinado proceso, vamos a ver c&oacute;mo. Para hacer los cambios persistentes, deberemos editar el fichero \/etc\/cgconfig.conf , por ejemplo: group vuitcores { perm { admin { uid = root; } task { uid = jprats; } } cpuset { cpuset.mems=0; cpuset.cpus=&#8221;0-7&#8243;; } } Mediante [&hellip;]<\/p>\n","protected":false},"author":321,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5045,5044],"tags":[],"class_list":["post-29542","post","type-post","status-publish","format-standard","hentry","category-cgroups","category-utilidades"],"_links":{"self":[{"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/posts\/29542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/users\/321"}],"replies":[{"embeddable":true,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/comments?post=29542"}],"version-history":[{"count":2,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/posts\/29542\/revisions"}],"predecessor-version":[{"id":41908,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/posts\/29542\/revisions\/41908"}],"wp:attachment":[{"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/media?parent=29542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/categories?post=29542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/icloud.pe\/blog\/wp-json\/wp\/v2\/tags?post=29542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}