{"id":1339,"date":"2024-07-23T12:36:03","date_gmt":"2024-07-23T12:36:03","guid":{"rendered":"https:\/\/dockerpros.com\/?post_type=glossary&#038;p=1339"},"modified":"2024-07-23T12:36:03","modified_gmt":"2024-07-23T12:36:03","slug":"dockerfile-cpu-shares","status":"publish","type":"glossary","link":"https:\/\/dockerpros.com\/it\/wiki\/dockerfile-cpu-shares\/","title":{"rendered":"Dockerfile \u2013 quota CPU"},"content":{"rendered":"<h1>Comprensione <span class=\"glossaryai-tooltip glossary-term-652\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\" target=\"_blank\">Dockerfile<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Un Dockerfile \u00e8 uno script contenente una serie di istruzioni per automatizzare la creazione di immagini Docker. Specifica l'immagine di base, le dipendenze dell'applicazione e la configurazione, facilitando la distribuzione coerente in diversi ambienti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> <code>--cpu-shares<\/code>: A Deep Dive into Resource Allocation<\/h1>\n<p>Docker is an essential tool for modern software development, particularly when it comes to containerization. Among other things, it allows developers to create, deploy, and manage applications seamlessly in isolated environments. One of the critical aspects of Docker is resource management, which enables you to allocate and control system resources effectively among various containers. One of the parameters used to influence CPU allocation is <code>--cpu-shares<\/code>. This article will provide an in-depth analysis of <code>--cpu-shares<\/code> in Docker, coprendo la sua importanza, l'utilizzo, le implicazioni pratiche e le best practice per una gestione efficace delle risorse.<\/p>\n<h2>What Are <code>cpu-shares<\/code>?<\/h2>\n<p>The <code>--cpu-shares<\/code> option in Docker is used to set the relative weight of CPU time allocated to a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>. The value specified does not represent an absolute CPU limit; rather, it indicates a prioritization factor against other containers running on the same host. By default, Docker assigns a value of 1024 to all containers unless specified otherwise. A <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> with a higher <code>--cpu-shares<\/code> value will receive more CPU time compared to a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> with a lower value when the system is under load.<\/p>\n<p>For example, if you have two containers: one with 1024 <code>cpu-shares<\/code> and another with 512, the first <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> will receive double the CPU time of the second when CPU resources are constrained.<\/p>\n<h2>Importanza dell'allocazione delle risorse in Docker<\/h2>\n<p>Un'allocazione efficace delle risorse \u00e8 fondamentale per mantenere le prestazioni e la stabilit\u00e0 delle applicazioni in esecuzione in container. Una cattiva gestione pu\u00f2 portare a degrado delle prestazioni, tempi di risposta lenti o addirittura <span class=\"glossaryai-tooltip glossary-term-681\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\" target=\"_blank\">servizio<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Il servizio si riferisce all'atto di fornire assistenza o supporto per soddisfare esigenze o requisiti specifici. In vari ambiti, comprende il servizio clienti, il supporto tecnico e i servizi professionali, enfatizzando l'efficienza e la soddisfazione dell'utente.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> interruzioni. Capire come utilizzare <code>--cpu-shares<\/code> L'implementazione intelligente di queste strategie pu\u00f2 migliorare significativamente le prestazioni complessive e l'affidabilit\u00e0 delle tue applicazioni containerizzate.<\/p>\n<h3>Benefits of Using <code>--cpu-shares<\/code><\/h3>\n<ol>\n<li>\n<p><strong>Controllo granulare<\/strong>: Impostando <code>cpu-shares<\/code>, you can fine-tune which containers get priority access to CPU resources. This is particularly beneficial in multi-tenant environments, where multiple applications or services <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> concurrently and compete for CPU resources.<\/p>\n<\/li>\n<li>\n<p><strong>Gestione Dinamica delle Risorse<\/strong>: <code>--cpu-shares<\/code> allows for dynamic resource allocation based on the current load and requirements of applications. You can adjust shares according to the changing needs of your workloads, ensuring that critical applications receive the necessary resources when they need them most.<\/p>\n<\/li>\n<li>\n<p><strong>Semplificato <span class=\"glossaryai-tooltip glossary-term-696\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\" target=\"_blank\">Scaling<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Il ridimensionamento si riferisce al processo di adeguamento della capacit\u00e0 di un sistema per far fronte a carichi variabili. Pu\u00f2 essere ottenuto attraverso il ridimensionamento verticale, che migliora le risorse esistenti, o il ridimensionamento orizzontale, che aggiunge risorse aggiuntive.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span><\/strong>: When deploying applications across multiple containers, having control over CPU shares simplifies <span class=\"glossaryai-tooltip glossary-term-696\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\" target=\"_blank\">scalabilit\u00e0<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Il ridimensionamento si riferisce al processo di adeguamento della capacit\u00e0 di un sistema per far fronte a carichi variabili. Pu\u00f2 essere ottenuto attraverso il ridimensionamento verticale, che migliora le risorse esistenti, o il ridimensionamento orizzontale, che aggiunge risorse aggiuntive.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/scaling\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> operations. You can easily prioritize essential services without manually managing each container&#8217;s CPU allocation.<\/p>\n<\/li>\n<li>\n<p><strong>Miglioramento delle prestazioni<\/strong>: By appropriately managing CPU resources, you can optimize application performance, especially for resource-intensive workloads. This leads to better user experiences and potentially higher <span class=\"glossaryai-tooltip glossary-term-681\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\" target=\"_blank\">servizio<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Il servizio si riferisce all'atto di fornire assistenza o supporto per soddisfare esigenze o requisiti specifici. In vari ambiti, comprende il servizio clienti, il supporto tecnico e i servizi professionali, enfatizzando l'efficienza e la soddisfazione dell'utente.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> disponibilit\u00e0.<\/p>\n<\/li>\n<\/ol>\n<h3>Come <code>--cpu-shares<\/code> Lavori<\/h3>\n<p>Il meccanismo sottostante di <code>--cpu-shares<\/code> is based on the Linux kernel&#8217;s Completely Fair Scheduler (CFS). The CFS equally divides CPU time among running processes based on their assigned shares. Therefore, the proportion of CPU time a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> receives is determined by its <code>cpu-shares<\/code> relative to all other containers on the same host.<\/p>\n<p>When containers are running without any CPU constraints, the scheduler ensures that each <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> gets a fair slice of CPU time based on its share value. If a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> is allowed to use more CPU resources than it is currently using, it can consume more as needed, ensuring that it does not starve under load.<\/p>\n<h3>Setting <code>--cpu-shares<\/code> in un Dockerfile<\/h3>\n<p>To set <code>cpu-shares<\/code> in un <span class=\"glossaryai-tooltip glossary-term-652\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\" target=\"_blank\">Dockerfile<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Un Dockerfile \u00e8 uno script contenente una serie di istruzioni per automatizzare la creazione di immagini Docker. Specifica l'immagine di base, le dipendenze dell'applicazione e la configurazione, facilitando la distribuzione coerente in diversi ambienti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>, you would typically use the <code>docker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span><\/code> command with the <code>--cpu-shares<\/code> opzione. Ecco un esempio:<\/p>\n<pre><code class=\"language-bash\">docker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> --cpu-shares=2048 my-container<\/code><\/pre>\n<p>In questo esempio, il <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> chiamato <code>il mio contenitore<\/code> is allocated double the CPU share compared to the default setting. However, you cannot set <code>cpu-shares<\/code> directly within the <span class=\"glossaryai-tooltip glossary-term-652\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\" target=\"_blank\">Dockerfile<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Un Dockerfile \u00e8 uno script contenente una serie di istruzioni per automatizzare la creazione di immagini Docker. Specifica l'immagine di base, le dipendenze dell'applicazione e la configurazione, facilitando la distribuzione coerente in diversi ambienti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> using a specific directive. Instead, you must configure it at runtime.<\/p>\n<h3>Casi d'uso pratici<\/h3>\n<h4>Scenario 1: Web Server vs. Batch Processing<\/h4>\n<p>Imagine a scenario where you are running a web server and a batch processing application on the same host. The web server requires quick response times to handle incoming user requests, while the batch processing application can tolerate longer execution times. In this case, you might want to allocate higher <code>cpu-shares<\/code> al server web e inferiore <code>cpu-shares<\/code> to the batch processing application:<\/p>\n<pre><code class=\"language-bash\"># Start the web server <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> with higher CPU shares\ndocker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> --cpu-shares=2048 web-server\n\n# Start the batch processing <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> with lower CPU shares\ndocker <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> --cpu-shares=512 batch-processor<\/code><\/pre>\n<p>In questa configurazione, il server web avr\u00e0 una priorit\u00e0 pi\u00f9 alta per quanto riguarda l'allocazione della CPU, garantendo che le richieste degli utenti vengano gestite rapidamente.<\/p>\n<h4>Scenario 2: Test di carico e ottimizzazione delle prestazioni<\/h4>\n<p>During load testing, you might want to simulate different loads on your application. By adjusting <code>cpu-shares<\/code>, you can monitor how your application behaves under varying levels of CPU contention. You can <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> multiple instances of your application, tweaking their CPU shares accordingly, and evaluate performance and responsiveness.<\/p>\n<h3>Monitoraggio dell'utilizzo della CPU<\/h3>\n<p>To effectively manage <code>cpu-shares<\/code>, \u00e8 fondamentale monitorare l'utilizzo della CPU e le metriche di prestazioni. Docker fornisce diversi strumenti e comandi per aiutare in questo:<\/p>\n<ul>\n<li>\n<p><strong>Statistiche Docker<\/strong>: You can use the <code>docker stats<\/code> comando per ottenere metriche in tempo reale sull'utilizzo delle risorse per tutti i contenitori in esecuzione.<\/p>\n<pre><code class=\"language-bash\">docker stats<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>Strumenti di monitoraggio delle prestazioni<\/strong>: Tools like Grafana, Prometheus, or cAdvisor can be integrated to visualize <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> metrics over time, allowing for more advanced analysis and tuning.<\/p>\n<\/li>\n<\/ul>\n<h3>Best Practices for Using <code>--cpu-shares<\/code><\/h3>\n<ol>\n<li>\n<p><strong>Comprendere i propri carichi di lavoro<\/strong>Prima di impostare <code>cpu-shares<\/code>, \u00c8 fondamentale analizzare la natura dei tuoi carichi di lavoro: alcuni potrebbero richiedere una priorit\u00e0 pi\u00f9 alta mentre altri possono essere delegati a quote minori.<\/p>\n<\/li>\n<li>\n<p><strong>Inizia con i valori predefiniti<\/strong>Spesso \u00e8 meglio iniziare con il valore predefinito <code>cpu-shares<\/code> value of 1024, then adjust based on observed performance metrics and operational requirements.<\/p>\n<\/li>\n<li>\n<p><strong>Test e Itera<\/strong>: La gestione delle risorse non \u00e8 un'operazione una tantum. Monitora continuamente le prestazioni dell'applicazione e apporta le modifiche necessarie <code>cpu-shares<\/code> as necessary based on real-world usage and performance data.<\/p>\n<\/li>\n<li>\n<p><strong>Evita il sovra-provisioning<\/strong>: While it may be tempting to allocate high <code>cpu-shares<\/code> to ensure optimal performance, be cautious of over-provisioning, as it could lead to resource contention, affecting the overall system stability.<\/p>\n<\/li>\n<li>\n<p><strong>Use in Conjunction with Other Limits<\/strong>Per un controllo pi\u00f9 granulare sull'allocazione delle risorse, considera l'utilizzo di <code>--cpus<\/code> alongside <code>--cpu-shares<\/code>. Il <code>--cpus<\/code> setting allows you to limit the number of CPU cores available to a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>, providing a more comprehensive resource management strategy.<\/p>\n<\/li>\n<\/ol>\n<h3>Conclusione<\/h3>\n<p>The <code>--cpu-shares<\/code> L'opzione in Docker \u00e8 una funzionalit\u00e0 potente per gestire l'allocazione della CPU tra i container. Comprendendo come funziona e applicando le migliori pratiche, gli sviluppatori possono ottimizzare le loro applicazioni containerizzate per migliorare le prestazioni, l'utilizzo delle risorse e la stabilit\u00e0. In un'era in cui le applicazioni vengono sempre pi\u00f9 distribuite in ambienti cloud e architetture multi-tenant, una gestione efficace delle risorse non \u00e8 solo un vantaggio, ma una necessit\u00e0.<\/p>\n<p>As you delve deeper into <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\" target=\"_blank\">container<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> <span class=\"glossaryai-tooltip glossary-term-657\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/orchestration\/\" target=\"_blank\">orchestrazione<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Orchestration refers to the automated management and coordination of complex systems and services. It optimizes processes by integrating various components, ensuring efficient operation and resource utilization.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/orchestration\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> e la gestione, la conoscenza di parametri come <code>--cpu-shares<\/code> will serve as a crucial element in the toolkit of any developer or system administrator. By taking a proactive approach to managing resources, you can ensure that your applications <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\" target=\"_blank\">correre<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" si riferisce a un comando in diversi linguaggi di programmazione e sistemi operativi per eseguire un programma o script specificato. Avvia processi, fornendo un ambiente controllato per l'esecuzione dei compiti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> smoothly and efficiently, even under varying loads, ultimately leading to a better user experience and more reliable <span class=\"glossaryai-tooltip glossary-term-681\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\" target=\"_blank\">servizio<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Il servizio si riferisce all'atto di fornire assistenza o supporto per soddisfare esigenze o requisiti specifici. In vari ambiti, comprende il servizio clienti, il supporto tecnico e i servizi professionali, enfatizzando l'efficienza e la soddisfazione dell'utente.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/service\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> delivery.<\/p>","protected":false},"excerpt":{"rendered":"<p>L'opzione `\u2013cpu-shares` in un <span class=\"glossaryai-tooltip glossary-term-652\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\" target=\"_blank\">Dockerfile<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Un Dockerfile \u00e8 uno script contenente una serie di istruzioni per automatizzare la creazione di immagini Docker. Specifica l'immagine di base, le dipendenze dell'applicazione e la configurazione, facilitando la distribuzione coerente in diversi ambienti.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> consente agli utenti di specificare quote relative di CPU per i contenitori. Questa impostazione influenza l'allocazione della CPU durante la contesa, fornendo un modo per gestire le risorse in modo efficace.<\/p>","protected":false},"author":1,"featured_media":1991,"parent":0,"template":"","glossary-cat":[],"class_list":["post-1339","glossary","type-glossary","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dockerfile -cpu-shares - Dockerpros<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile-cpu-shares\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dockerfile -cpu-shares - Dockerpros\" \/>\n<meta property=\"og:description\" content=\"The `--cpu-shares` option in a Dockerfile allows users to specify relative CPU shares for containers. This setting influences CPU allocation during contention, providing a way to manage resources effectively.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dockerpros.com\/it\/wiki\/dockerfile-cpu-shares\/\" \/>\n<meta property=\"og:site_name\" content=\"Dockerpros\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/\",\"url\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/\",\"name\":\"Dockerfile -cpu-shares - Dockerpros\",\"isPartOf\":{\"@id\":\"https:\/\/dockerpros.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg\",\"datePublished\":\"2024-07-23T12:36:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg\",\"width\":800,\"height\":600,\"caption\":\"dockerfile-cpu-shares-2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dockerpros.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Glossary\",\"item\":\"https:\/\/dockerpros.com\/fr\/wiki\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dockerfile &#8211;cpu-shares\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dockerpros.com\/#website\",\"url\":\"https:\/\/dockerpros.com\/\",\"name\":\"Dockerpros\",\"description\":\"DockerPros \u2013 Your Ultimate Docker Resource Hub\",\"publisher\":{\"@id\":\"https:\/\/dockerpros.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dockerpros.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dockerpros.com\/#organization\",\"name\":\"Dockerpros\",\"url\":\"https:\/\/dockerpros.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"width\":532,\"height\":114,\"caption\":\"Dockerpros\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dockerfile -cpu-shares - Dockerpros","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dockerpros.com\/it\/wiki\/dockerfile-cpu-shares\/","og_locale":"it_IT","og_type":"article","og_title":"Dockerfile -cpu-shares - Dockerpros","og_description":"The `--cpu-shares` option in a Dockerfile allows users to specify relative CPU shares for containers. This setting influences CPU allocation during contention, providing a way to manage resources effectively.","og_url":"https:\/\/dockerpros.com\/it\/wiki\/dockerfile-cpu-shares\/","og_site_name":"Dockerpros","og_image":[{"width":800,"height":600,"url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Tempo di lettura stimato":"6 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/","url":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/","name":"Dockerfile -cpu-shares - Dockerpros","isPartOf":{"@id":"https:\/\/dockerpros.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage"},"image":{"@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage"},"thumbnailUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg","datePublished":"2024-07-23T12:36:03+00:00","breadcrumb":{"@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#primaryimage","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/dockerfile-cpu-shares_1339.jpg","width":800,"height":600,"caption":"dockerfile-cpu-shares-2"},{"@type":"BreadcrumbList","@id":"https:\/\/dockerpros.com\/wiki\/dockerfile-cpu-shares\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dockerpros.com\/"},{"@type":"ListItem","position":2,"name":"Glossary","item":"https:\/\/dockerpros.com\/fr\/wiki\/"},{"@type":"ListItem","position":3,"name":"Dockerfile &#8211;cpu-shares"}]},{"@type":"WebSite","@id":"https:\/\/dockerpros.com\/#website","url":"https:\/\/dockerpros.com\/","name":"Esperti Docker","description":"DockerPros \u2013 Il tuo punto di riferimento definitivo per Docker","publisher":{"@id":"https:\/\/dockerpros.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dockerpros.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/dockerpros.com\/#organization","name":"Esperti Docker","url":"https:\/\/dockerpros.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","width":532,"height":114,"caption":"Dockerpros"},"image":{"@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/glossary\/1339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/types\/glossary"}],"author":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/glossary\/1339\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/media\/1991"}],"wp:attachment":[{"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/media?parent=1339"}],"wp:term":[{"taxonomy":"glossary-cat","embeddable":true,"href":"https:\/\/dockerpros.com\/it\/wp-json\/wp\/v2\/glossary-cat?post=1339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}