€•)»Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_CN/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_TW/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/pt_BR/scheduler/sched-bwc”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒSpanish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒwarning”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hŒ paragraph”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”…””}”(hh½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³Œ2Documentation/translations/sp_SP/disclaimer-sp.rst”h´Khh·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhhh²hh³hËh´NubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒOriginal”h]”hŒOriginal”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhhÙh³ŒT/var/lib/git/docbuild/linux/Documentation/translations/sp_SP/scheduler/sched-bwc.rst”h´KubhŒ field_body”“”)”}”(hŒF:ref:`Documentation/scheduler/sched-design-CFS.rst `”h]”h¼)”}”(hhñh]”h)”}”(hhñh]”hŒinline”“”)”}”(hhñh]”hŒ,Documentation/scheduler/sched-design-CFS.rst”…””}”(hhûh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hùhhöubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ&translations/sp_SP/scheduler/sched-bwc”Œ refdomain”jŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œsched_design_cfs”uh1hh³hìh´Khhóubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Khhïubah}”(h]”h ]”h"]”h$]”h&]”uh1híhhÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×h³hìh´KhhÔh²hubhØ)”}”(hhh]”(hÝ)”}”(hŒ Translator”h]”hŒ Translator”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhj,h³hìh´Kubhî)”}”(hŒ4Sergio González Collado ”h]”h¼)”}”(hŒ3Sergio González Collado ”h]”(hŒSergio González Collado <”…””}”(hjAh²hh³Nh´NubhŒ reference”“”)”}”(hŒsergio.collado@gmail.com”h]”hŒsergio.collado@gmail.com”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:sergio.collado@gmail.com”uh1jIhjAubhŒ>”…””}”(hjAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Khj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×h³hìh´KhhÔh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhh²hh³hìh´KubhŒtarget”“”)”}”(hŒ.. _sp_sched_bwc:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ sp-sched-bwc”uh1jwh´Khhh²hh³hìubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ!CFS con control de ancho de banda”h]”hŒ!CFS con control de ancho de banda”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhj‡h²hh³hìh´K ubhŒnote”“”)”}”(hŒ£Este documento únicamente trata el control de ancho de banda de CPUs para SCHED_NORMAL. El caso de SCHED_RT se trata en Documentation/scheduler/sched-rt-group.rst”h]”h¼)”}”(hŒ£Este documento únicamente trata el control de ancho de banda de CPUs para SCHED_NORMAL. El caso de SCHED_RT se trata en Documentation/scheduler/sched-rt-group.rst”h]”hŒ£Este documento únicamente trata el control de ancho de banda de CPUs para SCHED_NORMAL. El caso de SCHED_RT se trata en Documentation/scheduler/sched-rt-group.rst”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhj‡h²hh³hìh´Nubh¼)”}”(hŒŸEl control de ancho de banda es una extensión CONFIG_FAIR_GROUP_SCHED que permite especificar el máximo uso disponible de CPU para un grupo o una jerarquía.”h]”hŒŸEl control de ancho de banda es una extensión CONFIG_FAIR_GROUP_SCHED que permite especificar el máximo uso disponible de CPU para un grupo o una jerarquía.”…””}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Khj‡h²hubh¼)”}”(hXÃEl ancho de banda permitido para un grupo de tareas se especifica usando una cuota y un periodo. Dentro de un "periodo" (microsegundos), a un grupo de tareas se le asigna hasta su "cuota" de tiempo de uso de CPU en microsegundos. Esa cuota es asignada para cada CPU en colas de ejecución en porciones de tiempo de ejecución en la CPU según los hilos de ejecución del grupo de tareas van siendo candidatos a ejecutarse. Una vez toda la cuota ha sido asignada cualquier petición adicional de cuota resultará en esos hilos de ejecución siendo limitados/estrangulados. Los hilos de ejecución limitados no serán capaces de ejecutarse de nuevo hasta el siguiente periodo cuando la cuota sea restablecida.”h]”hXËEl ancho de banda permitido para un grupo de tareas se especifica usando una cuota y un periodo. Dentro de un “periodo†(microsegundos), a un grupo de tareas se le asigna hasta su “cuota†de tiempo de uso de CPU en microsegundos. Esa cuota es asignada para cada CPU en colas de ejecución en porciones de tiempo de ejecución en la CPU según los hilos de ejecución del grupo de tareas van siendo candidatos a ejecutarse. Una vez toda la cuota ha sido asignada cualquier petición adicional de cuota resultará en esos hilos de ejecución siendo limitados/estrangulados. Los hilos de ejecución limitados no serán capaces de ejecutarse de nuevo hasta el siguiente periodo cuando la cuota sea restablecida.”…””}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Khj‡h²hubh¼)”}”(hXuLa cuota sin asignar de un grupo es monitorizada globalmente, siendo restablecidas cfs_quota unidades al final de cada periodo. Según los hilos de ejecución van consumiendo este ancho de banda, este se transfiere a los "silos" de las cpu-locales en base a la demanda. La cantidad transferida en cada una de esas actualizaciones es ajustable y es descrito como un "slice".”h]”hX}La cuota sin asignar de un grupo es monitorizada globalmente, siendo restablecidas cfs_quota unidades al final de cada periodo. Según los hilos de ejecución van consumiendo este ancho de banda, este se transfiere a los “silos†de las cpu-locales en base a la demanda. La cantidad transferida en cada una de esas actualizaciones es ajustable y es descrito como un “sliceâ€.”…””}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Khj‡h²hubj†)”}”(hhh]”(j‹)”}”(hŒCaracterística de ráfaga”h]”hŒCaracterística de ráfaga”…””}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjÞh²hh³hìh´K&ubh¼)”}”(hŒÁEsta característica toma prestado tiempo ahora, que en un futuro tendrá que devolver, con el coste de una mayor interferencia hacia los otros usuarios del sistema. Todo acotado perfectamente.”h]”hŒÁEsta característica toma prestado tiempo ahora, que en un futuro tendrá que devolver, con el coste de una mayor interferencia hacia los otros usuarios del sistema. Todo acotado perfectamente.”…””}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K(hjÞh²hubh¼)”}”(hŒ?El tradicional control de ancho de banda (UP-EDF) es algo como:”h]”hŒ?El tradicional control de ancho de banda (UP-EDF) es algo como:”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K,hjÞh²hubhŒ block_quote”“”)”}”(hŒ(U = \Sum u_i) <= 1 ”h]”h¼)”}”(hŒ(U = \Sum u_i) <= 1”h]”hŒ(U = Sum u_i) <= 1”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K.hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´K.hjÞh²hubh¼)”}”(hXEsto garantiza dos cosas: que cada tiempo límite de ejecución es cumplido y que el sistema es estable. De todas formas, si U fuese > 1, entonces por cada segundo de tiempo de reloj de una tarea, tendríamos que ejecutar más de un segundo y obviamente no se cumpliría con el tiempo límite de ejecución de la tarea, pero en el siguiente periodo de ejecución el tiempo límite de la tarea estaría todavía más lejos, y nunca se tendría tiempo de alcanzar la ejecución, cayendo así en un fallo no acotado.”h]”hXEsto garantiza dos cosas: que cada tiempo límite de ejecución es cumplido y que el sistema es estable. De todas formas, si U fuese > 1, entonces por cada segundo de tiempo de reloj de una tarea, tendríamos que ejecutar más de un segundo y obviamente no se cumpliría con el tiempo límite de ejecución de la tarea, pero en el siguiente periodo de ejecución el tiempo límite de la tarea estaría todavía más lejos, y nunca se tendría tiempo de alcanzar la ejecución, cayendo así en un fallo no acotado.”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K0hjÞh²hubh¼)”}”(hŒ¶La característica de ráfaga implica que el trabajo de una tarea no siempre consuma totalmente la cuota; esto permite que se pueda describir u_i como una distribución estadística.”h]”hŒ¶La característica de ráfaga implica que el trabajo de una tarea no siempre consuma totalmente la cuota; esto permite que se pueda describir u_i como una distribución estadística.”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K8hjÞh²hubh¼)”}”(hXKPor ejemplo, se tiene u_i = {x,e}_i, donde x es el p(95) y x+e p(100) (el tradicional WCET (WCET:Worst Case Execution Time: son las siglas en inglés para "peor tiempo de ejecución")). Esto efectivamente permite a u ser más pequeño, aumentando la eficiencia (podemos ejecutar más tareas en el sistema), pero al coste de perder el instante límite de finalización deseado de la tarea, cuando coincidan las peores probabilidades. De todas formas, si se mantiene la estabilidad, ya que cada sobre-ejecución se empareja con una infra-ejecución en tanto x esté por encima de la media.”h]”hXOPor ejemplo, se tiene u_i = {x,e}_i, donde x es el p(95) y x+e p(100) (el tradicional WCET (WCET:Worst Case Execution Time: son las siglas en inglés para “peor tiempo de ejecuciónâ€)). Esto efectivamente permite a u ser más pequeño, aumentando la eficiencia (podemos ejecutar más tareas en el sistema), pero al coste de perder el instante límite de finalización deseado de la tarea, cuando coincidan las peores probabilidades. De todas formas, si se mantiene la estabilidad, ya que cada sobre-ejecución se empareja con una infra-ejecución en tanto x esté por encima de la media.”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K`.”h]”h¼)”}”(hŒ¢Los archivos cgroupfs descritos en esta sección solo se aplican al cgroup v1. Para cgroup v2, ver :ref:`Documentation/admin-guide/cgroup-v2.rst `.”h]”(hŒcLos archivos cgroupfs descritos en esta sección solo se aplican al cgroup v1. Para cgroup v2, ver ”…””}”(hj³h²hh³Nh´Nubh)”}”(hŒ>:ref:`Documentation/admin-guide/cgroup-v2.rst `”h]”hú)”}”(hj½h]”hŒ'Documentation/admin-guide/cgroup-v2.rst”…””}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hùhj»ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jÉŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ cgroup-v2-cpu”uh1hh³hìh´Kahj³ubhŒ.”…””}”(hj³h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kahj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhjh²hh³hìh´NubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒVcpu.cfs_quota_us: tiempo de ejecución que se refresca cada periodo (en microsegundos)”h]”h¼)”}”(hjôh]”hŒVcpu.cfs_quota_us: tiempo de ejecución que se refresca cada periodo (en microsegundos)”…””}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kdhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjíh²hh³hìh´Nubjñ)”}”(hŒ>cpu.cfs_period_us: la duración del periodo (en microsegundos)”h]”h¼)”}”(hj h]”hŒ>cpu.cfs_period_us: la duración del periodo (en microsegundos)”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kehj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjíh²hh³hìh´Nubjñ)”}”(hŒNcpu.stat: exporta las estadísticas de limitación [explicado a continuación]”h]”h¼)”}”(hj"h]”hŒNcpu.stat: exporta las estadísticas de limitación [explicado a continuación]”…””}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kfhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjíh²hh³hìh´Nubjñ)”}”(hŒOcpu.cfs_burst_us: el máximo tiempo de ejecución acumulado (en microsegundos) ”h]”h¼)”}”(hŒNcpu.cfs_burst_us: el máximo tiempo de ejecución acumulado (en microsegundos)”h]”hŒNcpu.cfs_burst_us: el máximo tiempo de ejecución acumulado (en microsegundos)”…””}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kghj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjíh²hh³hìh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jëh³hìh´Kdhjh²hubh¼)”}”(hŒLos valores por defecto son::”h]”hŒLos valores por defecto son:”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kihjh²hubhŒ literal_block”“”)”}”(hŒ>cpu.cfs_period_us=100ms cpu.cfs_quota_us=-1 cpu.cfs_burst_us=0”h]”hŒ>cpu.cfs_period_us=100ms cpu.cfs_quota_us=-1 cpu.cfs_burst_us=0”…””}”hjgsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jeh³hìh´Kkhjh²hubh¼)”}”(hŒñUn valor de -1 para cpu.cfs_quota_us indica que el grupo no tiene ninguna restricción de ancho de banda aplicado, ese grupo se describe como un grupo con ancho de banda sin restringir. Esto representa el comportamiento tradicional para CFS.”h]”hŒñUn valor de -1 para cpu.cfs_quota_us indica que el grupo no tiene ninguna restricción de ancho de banda aplicado, ese grupo se describe como un grupo con ancho de banda sin restringir. Esto representa el comportamiento tradicional para CFS.”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kohjh²hubh¼)”}”(hX‹Asignar cualquier valor (válido) y positivo no menor que cpu.cfs_burst_us definirá el límite del ancho de banda. La cuota mínima permitida para la cuota o periodo es 1ms. Hay también un límite superior en la duración del periodo de 1s. Existen restricciones adicionales cuando los límites de ancho de banda se usan de manera jerárquica, estos se explican en mayor detalle más adelante.”h]”hX‹Asignar cualquier valor (válido) y positivo no menor que cpu.cfs_burst_us definirá el límite del ancho de banda. La cuota mínima permitida para la cuota o periodo es 1ms. Hay también un límite superior en la duración del periodo de 1s. Existen restricciones adicionales cuando los límites de ancho de banda se usan de manera jerárquica, estos se explican en mayor detalle más adelante.”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kthjh²hubh¼)”}”(hŒ™Asignar cualquier valor negativo a cpu.cfs_quota_us eliminará el límite de ancho de banda y devolverá de nuevo al grupo a un estado sin restricciones.”h]”hŒ™Asignar cualquier valor negativo a cpu.cfs_quota_us eliminará el límite de ancho de banda y devolverá de nuevo al grupo a un estado sin restricciones.”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K{hjh²hubh¼)”}”(hXeUn valor de 0 para cpu.cfs_burst_us indica que el grupo no puede acumular ningún ancho de banda sin usar. Esto hace que el control del comportamiento tradicional del ancho de banda para CFS no cambie. Definir cualquier valor (válido) positivo no mayor que cpu.cfs_quota_us en cpu.cgs_burst_us definirá el límite con el ancho de banda acumulado no usado.”h]”hXeUn valor de 0 para cpu.cfs_burst_us indica que el grupo no puede acumular ningún ancho de banda sin usar. Esto hace que el control del comportamiento tradicional del ancho de banda para CFS no cambie. Definir cualquier valor (válido) positivo no mayor que cpu.cfs_quota_us en cpu.cgs_burst_us definirá el límite con el ancho de banda acumulado no usado.”…””}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K~hjh²hubh¼)”}”(hŒCualquier actualización a las especificaciones del ancho de banda usado por un grupo resultará en que se deje de limitar si está en un estado restringido.”h]”hŒCualquier actualización a las especificaciones del ancho de banda usado por un grupo resultará en que se deje de limitar si está en un estado restringido.”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K„hjh²hubeh}”(h]”Œgestion”ah ]”h"]”Œ gestión:”ah$]”h&]”uh1j…hj‡h²hh³hìh´K[ubj†)”}”(hhh]”(j‹)”}”(hŒAjustes globales del sistema”h]”hŒAjustes globales del sistema”…””}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjÅh²hh³hìh´K‰ubh¼)”}”(hX#Por eficiencia el tiempo de ejecución es transferido en lotes desde una reserva global y el "silo" de una CPU local. Esto reduce en gran medida la presión por la contabilidad en grandes sistemas. La cantidad transferida cada vez que se requiere una actualización se describe como "slice".”h]”hX+Por eficiencia el tiempo de ejecución es transferido en lotes desde una reserva global y el “silo†de una CPU local. Esto reduce en gran medida la presión por la contabilidad en grandes sistemas. La cantidad transferida cada vez que se requiere una actualización se describe como “sliceâ€.”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K‹hjÅh²hubh¼)”}”(hŒEsto es ajustable vía procfs::”h]”hŒEsto es ajustable vía procfs:”…””}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KhjÅh²hubjf)”}”(hŒE/proc/sys/kernel/sched_cfs_bandwidth_slice_us (valor por defecto=5ms)”h]”hŒE/proc/sys/kernel/sched_cfs_bandwidth_slice_us (valor por defecto=5ms)”…””}”hjòsbah}”(h]”h ]”h"]”h$]”h&]”jujvuh1jeh³hìh´K’hjÅh²hubh¼)”}”(hŒ—Valores de "slice" más grandes reducirán el costo de transferencia, mientras que valores más pequeños permitirán un control más fino del consumo.”h]”hŒ›Valores de “slice†más grandes reducirán el costo de transferencia, mientras que valores más pequeños permitirán un control más fino del consumo.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K”hjÅh²hubeh}”(h]”Œajustes-globales-del-sistema”ah ]”h"]”Œajustes globales del sistema”ah$]”h&]”uh1j…hj‡h²hh³hìh´K‰ubj†)”}”(hhh]”(j‹)”}”(hŒ Estadísticas”h]”hŒ Estadísticas”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjh²hh³hìh´K˜ubh¼)”}”(hŒTLas estadísticas del ancho de banda de un grupo se exponen en 5 campos en cpu.stat.”h]”hŒTLas estadísticas del ancho de banda de un grupo se exponen en 5 campos en cpu.stat.”…””}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kšhjh²hubh¼)”}”(hŒ cpu.stat:”h]”hŒ cpu.stat:”…””}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kœhjh²hubjì)”}”(hhh]”(jñ)”}”(hŒ;nr_periods: Número de intervalos aplicados que han pasado.”h]”h¼)”}”(hjHh]”hŒ;nr_periods: Número de intervalos aplicados que han pasado.”…””}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KžhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjCh²hh³hìh´Nubjñ)”}”(hŒInr_throttled: Número de veces que el grupo ha sido restringido/limitado.”h]”h¼)”}”(hj_h]”hŒInr_throttled: Número de veces que el grupo ha sido restringido/limitado.”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KŸhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjCh²hh³hìh´Nubjñ)”}”(hŒuthrottled_time: La duración de tiempo total (en nanosegundos) en las que las entidades del grupo han sido limitadas.”h]”h¼)”}”(hŒuthrottled_time: La duración de tiempo total (en nanosegundos) en las que las entidades del grupo han sido limitadas.”h]”hŒuthrottled_time: La duración de tiempo total (en nanosegundos) en las que las entidades del grupo han sido limitadas.”…””}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjCh²hh³hìh´Nubjñ)”}”(hŒ>nr_bursts: Número de periodos en que ha ocurrido una ráfaga.”h]”h¼)”}”(hjŽh]”hŒ>nr_bursts: Número de periodos en que ha ocurrido una ráfaga.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K¢hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjCh²hh³hìh´Nubjñ)”}”(hŒxburst_time: Tiempo acumulado (en nanosegundos) en la que una CPU ha usado más de su cuota en los respectivos periodos. ”h]”h¼)”}”(hŒwburst_time: Tiempo acumulado (en nanosegundos) en la que una CPU ha usado más de su cuota en los respectivos periodos.”h]”hŒwburst_time: Tiempo acumulado (en nanosegundos) en la que una CPU ha usado más de su cuota en los respectivos periodos.”…””}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K£hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjCh²hh³hìh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jUjVuh1jëh³hìh´Kžhjh²hubh¼)”}”(hŒ!Este interfaz es de solo lectura.”h]”hŒ!Este interfaz es de solo lectura.”…””}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K¦hjh²hubeh}”(h]”Œ estadisticas”ah ]”h"]”Œ estadísticas”ah$]”h&]”uh1j…hj‡h²hh³hìh´K˜ubj†)”}”(hhh]”(j‹)”}”(hŒConsideraciones jerárquicas”h]”hŒConsideraciones jerárquicas”…””}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhj×h²hh³hìh´K©ubh¼)”}”(hX"La interfaz refuerza que el ancho de banda de una entidad individual sea siempre factible, esto es: max(c_i) <= C. De todas maneras, la sobre-suscripción en el caso agregado está explícitamente permitida para hacer posible semánticas de conservación de trabajo dentro de una jerarquia.”h]”hX"La interfaz refuerza que el ancho de banda de una entidad individual sea siempre factible, esto es: max(c_i) <= C. De todas maneras, la sobre-suscripción en el caso agregado está explícitamente permitida para hacer posible semánticas de conservación de trabajo dentro de una jerarquia.”…””}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K«hj×h²hubj )”}”(hŒ e.g. \Sum (c_i) puede superar C ”h]”h¼)”}”(hŒe.g. \Sum (c_i) puede superar C”h]”hŒe.g. Sum (c_i) puede superar C”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K±hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´K±hj×h²hubh¼)”}”(hŒA[ Donde C es el ancho de banda de el padre, y c_i el de su hijo ]”h]”hŒA[ Donde C es el ancho de banda de el padre, y c_i el de su hijo ]”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K³hj×h²hubh¼)”}”(hŒ6Hay dos formas en las que un grupo puede ser limitado:”h]”hŒ6Hay dos formas en las que un grupo puede ser limitado:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kµhj×h²hubj )”}”(hŒwa. este consume totalmente su propia cuota en un periodo. b. la cuota del padre es consumida totalmente en su periodo. ”h]”hŒenumerated_list”“”)”}”(hhh]”(jñ)”}”(hŒ6este consume totalmente su propia cuota en un periodo.”h]”h¼)”}”(hj5h]”hŒ6este consume totalmente su propia cuota en un periodo.”…””}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K·hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhj0ubjñ)”}”(hŒ:la cuota del padre es consumida totalmente en su periodo. ”h]”h¼)”}”(hŒ9la cuota del padre es consumida totalmente en su periodo.”h]”hŒ9la cuota del padre es consumida totalmente en su periodo.”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K¸hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhj0ubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”hŒsuffix”Œ.”uh1j.hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´K·hj×h²hubh¼)”}”(hŒ¯En el caso b) anterior, incluso si el hijo pudiera tener tiempo de ejecución restante, este no le será permitido hasta que el tiempo de ejecución del padre sea actualizado.”h]”hŒ¯En el caso b) anterior, incluso si el hijo pudiera tener tiempo de ejecución restante, este no le será permitido hasta que el tiempo de ejecución del padre sea actualizado.”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kºhj×h²hubeh}”(h]”Œconsideraciones-jerarquicas”ah ]”h"]”Œconsideraciones jerárquicas”ah$]”h&]”uh1j…hj‡h²hh³hìh´K©ubj†)”}”(hhh]”(j‹)”}”(hŒ@Advertencias sobre el CFS con control de cuota de ancho de banda”h]”hŒ@Advertencias sobre el CFS con control de cuota de ancho de banda”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhj‰h²hh³hìh´K¿ubh¼)”}”(hX†Una vez una "slice" se asigna a una cpu esta no expira. A pesar de eso todas, excepto las "slices" menos las de 1ms, puede ser devueltas a la reserva global si todos los hilos en esa cpu pasan a ser no ejecutables. Esto se configura en el tiempo de compilación por la variable min_cfs_rq_runtime. Esto es un ajuste en la eficacia que ayuda a prevenir añadir bloqueos en el candado global.”h]”hXŽUna vez una “slice†se asigna a una cpu esta no expira. A pesar de eso todas, excepto las “slices†menos las de 1ms, puede ser devueltas a la reserva global si todos los hilos en esa cpu pasan a ser no ejecutables. Esto se configura en el tiempo de compilación por la variable min_cfs_rq_runtime. Esto es un ajuste en la eficacia que ayuda a prevenir añadir bloqueos en el candado global.”…””}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KÁhj‰h²hubh¼)”}”(hŒEl hecho de que las "slices" de una cpu local no expiren tiene como resultado algunos casos extremos interesantes que debieran ser comprendidos.”h]”hŒ”El hecho de que las “slices†de una cpu local no expiren tiene como resultado algunos casos extremos interesantes que debieran ser comprendidos.”…””}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KÇhj‰h²hubh¼)”}”(hX’Para una aplicación que es un cgroup y que está limitada en su uso de cpu es un punto discutible ya que de forma natural consumirá toda su parte de cuota así como también la totalidad de su cuota en cpu locales en cada periodo. Como resultado se espera que nr_periods sea aproximadamente igual a nr_throttled, y que cpuacct.usage se incremente aproximadamente igual a cfs_quota_us en cada periodo.”h]”hX’Para una aplicación que es un cgroup y que está limitada en su uso de cpu es un punto discutible ya que de forma natural consumirá toda su parte de cuota así como también la totalidad de su cuota en cpu locales en cada periodo. Como resultado se espera que nr_periods sea aproximadamente igual a nr_throttled, y que cpuacct.usage se incremente aproximadamente igual a cfs_quota_us en cada periodo.”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KÊhj‰h²hubh¼)”}”(hX¥Para aplicaciones que tienen un gran número de hilos de ejecución y que no estan ligadas a una cpu, este matiz de la no-expiración permite que las aplicaciones brevemente sobrepasen su cuota límite en la cantidad que no ha sido usada en cada cpu en la que el grupo de tareas se está ejecutando (típicamente como mucho 1ms por cada cpu o lo que se ha definido como min_cfs_rq_runtime). Este pequeño sobreuso únicamente tiene lugar si la cuota que ha sido asignada a una cpu y no ha sido completamente usada o devuelta en periodos anteriores. Esta cantidad de sobreuso no será transferida entre núcleos. Como resultado, este mecanismo todavía cumplirá estrictamente los límites de la tarea de grupo en el promedio del uso, pero sobre una ventana de tiempo mayor que un único periodo. Esto también limita la habilidad de un sobreuso a no más de 1ms por cada cpu. Esto provee de una experiencia de uso más predecible para aplicaciones con muchos hilos y con límites de cuota pequeños en máquinas con muchos núcleos. Esto también elimina la propensión a limitar estas aplicaciones mientras que simultáneamente usan menores cuotas de uso por cpu. Otra forma de decir esto es que permitiendo que la parte no usada de una "slice" permanezca válida entre periodos disminuye la posibilidad de malgastare cuota que va a expirar en las reservas de la cpu locales que no necesitan una "slice" completa de tiempo de ejecución de cpu.”h]”hX­Para aplicaciones que tienen un gran número de hilos de ejecución y que no estan ligadas a una cpu, este matiz de la no-expiración permite que las aplicaciones brevemente sobrepasen su cuota límite en la cantidad que no ha sido usada en cada cpu en la que el grupo de tareas se está ejecutando (típicamente como mucho 1ms por cada cpu o lo que se ha definido como min_cfs_rq_runtime). Este pequeño sobreuso únicamente tiene lugar si la cuota que ha sido asignada a una cpu y no ha sido completamente usada o devuelta en periodos anteriores. Esta cantidad de sobreuso no será transferida entre núcleos. Como resultado, este mecanismo todavía cumplirá estrictamente los límites de la tarea de grupo en el promedio del uso, pero sobre una ventana de tiempo mayor que un único periodo. Esto también limita la habilidad de un sobreuso a no más de 1ms por cada cpu. Esto provee de una experiencia de uso más predecible para aplicaciones con muchos hilos y con límites de cuota pequeños en máquinas con muchos núcleos. Esto también elimina la propensión a limitar estas aplicaciones mientras que simultáneamente usan menores cuotas de uso por cpu. Otra forma de decir esto es que permitiendo que la parte no usada de una “slice†permanezca válida entre periodos disminuye la posibilidad de malgastare cuota que va a expirar en las reservas de la cpu locales que no necesitan una “slice†completa de tiempo de ejecución de cpu.”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´KÑhj‰h²hubh¼)”}”(hX[La interacción entre las aplicaciones ligadas a una CPU y las que no están ligadas a ninguna cpu ha de ser también considerada, especialmente cuando un único núcleo tiene un uso del 100%. Si se da a cada una de esas aplicaciones la mitad de la capacidad de una CPU-núcleo y ambas están gestionadas en la misma CPU es teóricamente posible que la aplicación no ligada a ninguna CPU use su 1ms adicional de cuota en algunos periodos, y por tanto evite que la aplicación ligada a una CPU pueda usar su cuota completa por esa misma cantidad. En esos caso el algoritmo CFS (vea sched-design-CFS.rst) el que decida qué aplicación es la elegida para ejecutarse, ya que ambas serán candidatas a ser ejecutadas y tienen cuota restante. Esta discrepancia en el tiempo de ejecución se compensará en los periodos siguientes cuando el sistema esté inactivo.”h]”hX[La interacción entre las aplicaciones ligadas a una CPU y las que no están ligadas a ninguna cpu ha de ser también considerada, especialmente cuando un único núcleo tiene un uso del 100%. Si se da a cada una de esas aplicaciones la mitad de la capacidad de una CPU-núcleo y ambas están gestionadas en la misma CPU es teóricamente posible que la aplicación no ligada a ninguna CPU use su 1ms adicional de cuota en algunos periodos, y por tanto evite que la aplicación ligada a una CPU pueda usar su cuota completa por esa misma cantidad. En esos caso el algoritmo CFS (vea sched-design-CFS.rst) el que decida qué aplicación es la elegida para ejecutarse, ya que ambas serán candidatas a ser ejecutadas y tienen cuota restante. Esta discrepancia en el tiempo de ejecución se compensará en los periodos siguientes cuando el sistema esté inactivo.”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kçhj‰h²hubeh}”(h]”Œ@advertencias-sobre-el-cfs-con-control-de-cuota-de-ancho-de-banda”ah ]”h"]”Œ@advertencias sobre el cfs con control de cuota de ancho de banda”ah$]”h&]”uh1j…hj‡h²hh³hìh´K¿ubj†)”}”(hhh]”(j‹)”}”(hŒEjemplos”h]”hŒEjemplos”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjèh²hh³hìh´Kõubj/)”}”(hhh]”(jñ)”}”(hX$Un grupo limitado a 1 CPU de tiempo de ejecución. Si el periodo son 250ms y la cuota son 250ms el grupo de tareas tendrá el tiempo de ejecución de 1 CPU cada 250ms:: # echo 250000 > cpu.cfs_quota_us /* cuota = 250ms */ # echo 250000 > cpu.cfs_period_us /* periodo = 250ms */ ”h]”(h¼)”}”(hŒ2Un grupo limitado a 1 CPU de tiempo de ejecución.”h]”hŒ2Un grupo limitado a 1 CPU de tiempo de ejecución.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´K÷hjüubj )”}”(hŒìSi el periodo son 250ms y la cuota son 250ms el grupo de tareas tendrá el tiempo de ejecución de 1 CPU cada 250ms:: # echo 250000 > cpu.cfs_quota_us /* cuota = 250ms */ # echo 250000 > cpu.cfs_period_us /* periodo = 250ms */ ”h]”(h¼)”}”(hŒuSi el periodo son 250ms y la cuota son 250ms el grupo de tareas tendrá el tiempo de ejecución de 1 CPU cada 250ms::”h]”hŒtSi el periodo son 250ms y la cuota son 250ms el grupo de tareas tendrá el tiempo de ejecución de 1 CPU cada 250ms:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kùhjubjf)”}”(hŒl# echo 250000 > cpu.cfs_quota_us /* cuota = 250ms */ # echo 250000 > cpu.cfs_period_us /* periodo = 250ms */”h]”hŒl# echo 250000 > cpu.cfs_quota_us /* cuota = 250ms */ # echo 250000 > cpu.cfs_period_us /* periodo = 250ms */”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jujvuh1jeh³hìh´Kühjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´Kùhjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðhjùh²hh³hìh´Nubjñ)”}”(hXŠUn grupo limitado al tiempo de ejecución de 2 CPUs en una máquina varias CPUs. Con un periodo de 500ms y una cuota de 1000ms el grupo de tareas tiene el tiempo de ejecución de 2 CPUs cada 500ms:: # echo 1000000 > cpu.cfs_quota_us /* cuota = 1000ms */ # echo 500000 > cpu.cfs_period_us /* periodo = 500ms */ El periodo más largo aquí permite una capacidad de ráfaga mayor. ”h]”(h¼)”}”(hŒPUn grupo limitado al tiempo de ejecución de 2 CPUs en una máquina varias CPUs.”h]”hŒPUn grupo limitado al tiempo de ejecución de 2 CPUs en una máquina varias CPUs.”…””}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Kÿhj:ubj )”}”(hX3Con un periodo de 500ms y una cuota de 1000ms el grupo de tareas tiene el tiempo de ejecución de 2 CPUs cada 500ms:: # echo 1000000 > cpu.cfs_quota_us /* cuota = 1000ms */ # echo 500000 > cpu.cfs_period_us /* periodo = 500ms */ El periodo más largo aquí permite una capacidad de ráfaga mayor. ”h]”(h¼)”}”(hŒuCon un periodo de 500ms y una cuota de 1000ms el grupo de tareas tiene el tiempo de ejecución de 2 CPUs cada 500ms::”h]”hŒtCon un periodo de 500ms y una cuota de 1000ms el grupo de tareas tiene el tiempo de ejecución de 2 CPUs cada 500ms:”…””}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´MhjLubjf)”}”(hŒn# echo 1000000 > cpu.cfs_quota_us /* cuota = 1000ms */ # echo 500000 > cpu.cfs_period_us /* periodo = 500ms */”h]”hŒn# echo 1000000 > cpu.cfs_quota_us /* cuota = 1000ms */ # echo 500000 > cpu.cfs_period_us /* periodo = 500ms */”…””}”hj^sbah}”(h]”h ]”h"]”h$]”h&]”jujvuh1jeh³hìh´MhjLubh¼)”}”(hŒCEl periodo más largo aquí permite una capacidad de ráfaga mayor.”h]”hŒCEl periodo más largo aquí permite una capacidad de ráfaga mayor.”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´MhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´Mhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðhjùh²hh³hìh´Nubjñ)”}”(hXeUn grupo limitado a un 20% de 1 CPU. Con un periodo de 50ms, 10ms de cuota son equivalentes al 20% de 1 CPUs:: # echo 10000 > cpu.cfs_quota_us /* cuota = 10ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ Usando un periodo pequeño aquí nos aseguramos una respuesta de la latencia consistente a expensas de capacidad de ráfaga. ”h]”(h¼)”}”(hŒ$Un grupo limitado a un 20% de 1 CPU.”h]”hŒ$Un grupo limitado a un 20% de 1 CPU.”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´M hj†ubj )”}”(hX:Con un periodo de 50ms, 10ms de cuota son equivalentes al 20% de 1 CPUs:: # echo 10000 > cpu.cfs_quota_us /* cuota = 10ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ Usando un periodo pequeño aquí nos aseguramos una respuesta de la latencia consistente a expensas de capacidad de ráfaga. ”h]”(h¼)”}”(hŒICon un periodo de 50ms, 10ms de cuota son equivalentes al 20% de 1 CPUs::”h]”hŒHCon un periodo de 50ms, 10ms de cuota son equivalentes al 20% de 1 CPUs:”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´M hj˜ubjf)”}”(hŒh# echo 10000 > cpu.cfs_quota_us /* cuota = 10ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */”h]”hŒh# echo 10000 > cpu.cfs_quota_us /* cuota = 10ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */”…””}”hjªsbah}”(h]”h ]”h"]”h$]”h&]”jujvuh1jeh³hìh´M hj˜ubh¼)”}”(hŒ|Usando un periodo pequeño aquí nos aseguramos una respuesta de la latencia consistente a expensas de capacidad de ráfaga.”h]”hŒ|Usando un periodo pequeño aquí nos aseguramos una respuesta de la latencia consistente a expensas de capacidad de ráfaga.”…””}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Mhj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´M hj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðhjùh²hh³hìh´Nubjñ)”}”(hXUn grupo limitado al 40% de 1 CPU, y permite acumular adicionalmente hasta un 20% de 1 CPU. Con un periodo de 50ms, 20ms de cuota son equivalentes al 40% de 1 CPU. Y 10ms de ráfaga, son equivalentes a un 20% de 1 CPU:: # echo 20000 > cpu.cfs_quota_us /* cuota = 20ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ # echo 10000 > cpu.cfs_burst_us /* ráfaga = 10ms */ Un ajuste mayor en la capacidad de almacenamiento (no mayor que la cuota) permite una mayor capacidad de ráfaga. ”h]”(h¼)”}”(hŒ[Un grupo limitado al 40% de 1 CPU, y permite acumular adicionalmente hasta un 20% de 1 CPU.”h]”hŒ[Un grupo limitado al 40% de 1 CPU, y permite acumular adicionalmente hasta un 20% de 1 CPU.”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´MhjÒubj )”}”(hXžCon un periodo de 50ms, 20ms de cuota son equivalentes al 40% de 1 CPU. Y 10ms de ráfaga, son equivalentes a un 20% de 1 CPU:: # echo 20000 > cpu.cfs_quota_us /* cuota = 20ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ # echo 10000 > cpu.cfs_burst_us /* ráfaga = 10ms */ Un ajuste mayor en la capacidad de almacenamiento (no mayor que la cuota) permite una mayor capacidad de ráfaga. ”h]”(h¼)”}”(hŒCon un periodo de 50ms, 20ms de cuota son equivalentes al 40% de 1 CPU. Y 10ms de ráfaga, son equivalentes a un 20% de 1 CPU::”h]”hŒ~Con un periodo de 50ms, 20ms de cuota son equivalentes al 40% de 1 CPU. Y 10ms de ráfaga, son equivalentes a un 20% de 1 CPU:”…””}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Mhjäubjf)”}”(hŒ# echo 20000 > cpu.cfs_quota_us /* cuota = 20ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ # echo 10000 > cpu.cfs_burst_us /* ráfaga = 10ms */”h]”hŒ# echo 20000 > cpu.cfs_quota_us /* cuota = 20ms */ # echo 50000 > cpu.cfs_period_us /* periodo = 50ms */ # echo 10000 > cpu.cfs_burst_us /* ráfaga = 10ms */”…””}”hjösbah}”(h]”h ]”h"]”h$]”h&]”jujvuh1jeh³hìh´Mhjäubh¼)”}”(hŒqUn ajuste mayor en la capacidad de almacenamiento (no mayor que la cuota) permite una mayor capacidad de ráfaga.”h]”hŒqUn ajuste mayor en la capacidad de almacenamiento (no mayor que la cuota) permite una mayor capacidad de ráfaga.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h»h³hìh´Mhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hìh´MhjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðhjùh²hh³hìh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jhŒarabic”jjhjkjluh1j.hjèh²hh³hìh´K÷ubeh}”(h]”Œejemplos”ah ]”h"]”Œejemplos”ah$]”h&]”uh1j…hj‡h²hh³hìh´Kõubeh}”(h]”(Œ!cfs-con-control-de-ancho-de-banda”j„eh ]”h"]”(Œ!cfs con control de ancho de banda”Œ sp_sched_bwc”eh$]”h&]”uh1j…hhh²hh³hìh´K Œexpect_referenced_by_name”}”j3jysŒexpect_referenced_by_id”}”j„jysubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hìuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(jŠNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j]Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hìŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”j„]”jyasŒnameids”}”(j3j„j2j/jjŠjÂj¿jjjÔjÑj†jƒjåjâj*j'uŒ nametypes”}”(j3ˆj2‰j‰j‰j‰jÔ‰j†‰jå‰j*‰uh}”(j„j‡j/j‡jŠjÞj¿jjjÅjÑjjƒj×jâj‰j'jèuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”h¼)”}”(hhh]”hŒ2Hyperlink target "sp-sched-bwc" is not referenced.”…””}”hjÇsbah}”(h]”h ]”h"]”h$]”h&]”uh1h»hjÄubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hìŒline”Kuh1jÂubaŒ transformer”NŒ include_log”]”Œ8Documentation/translations/sp_SP/scheduler/sched-bwc.rst”(NNNNt”†”aŒ decoration”Nh²hub.