Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Hosting e Cloud
    5. Limitare l'utilizzi della memoria SWAP o RAM a un programma in esecuzione
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      paolino Moderatore • ultima modifica di

      Ovviamente esiste ed è ulimit http://ss64.com/bash/ulimit.html

      C'è anche un metodo più complesso che è quello dei cgroups http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • F
        frank92 Bannato User Attivo • ultima modifica di

        Non è possibile fare come cpulimit? cioè indico il processo a cui deve limitare l'uso di CPU? ulimit sembra ke lo termini il processo più che limitarlo, e poi non è che lo limita bene perchè si avviano 2 processi quando avvio questo programma, uno lo stoppa e l'altro abusa di memoria per conto suo, che comando devo dargli?

        Ho gia provato ulimit -m 50000 (sarebbe 50MB), ma nn ha effetto su tutti e 2 i processi

        Oppure la seconda alternativa come posso fare a limitarlo a livello del kernel, ma vorrei che lo faccia solo per determinati processi!
        Puoi spiegarmi come fare a livello del kernel sia come consumo di CPU che di RAM?

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          paolino Moderatore • ultima modifica di

          L'unico modo è sfruttare i cgroups. Ho visto che esiste un programma chiamato rlimit ma non so fino a che punto funziona.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • F
            frank92 Bannato User Attivo • ultima modifica di

            Come faccio ad usare i cgroups?

            Facciamo conto che abbiamo un programma binario avviato come root, come devo settare questi cgroups in modo che questo programma:

            • Non superi il 20% di CPU
            • Non superi oltre 80 MB di RAM

            Come devo fare a settare questi cgroups?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              paolino Moderatore • ultima modifica di

              Dipende dalla distribuzione. Ti consiglio di dare un'occhiata qui http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • F
                frank92 Bannato User Attivo • ultima modifica di

                @paolino said:

                Dipende dalla distribuzione. Ti consiglio di dare un'occhiata qui http : / / docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html

                La distribuzione è Debian 5 x64

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  paolino Moderatore • ultima modifica di

                  Guarda qui http://hydra.geht.net/tino/english/faq/debian/squeeze/cgroups/

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • F
                    frank92 Bannato User Attivo • ultima modifica di

                    Puoi procurarmi uno script che ferma i processi che superano un certo limite di utilizzo della RAM?

                    Pseudo Linguaggio:

                    
                    varPROG = "prog.bin";
                    
                    ciclo{
                    
                      if(varPROG è in esecuzione) {
                    
                        varPID = PID(varPROG); // estrai PID del programma
                    
                        varMEM = RAM(varPID); // estrai variabile di utilizzo di  memoria da parte del PID
                    
                           if (varMEM => "5") { // se maggiore del 5% dell'utilizzo
                    
                           kill - 9 varPID; // ferma il programma con tale PID
                    
                           }
                    
                      }
                    
                      sleep(7); // In pausa per 7 secondi
                    
                    }
                    
                    
                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • P
                      paolino Moderatore • ultima modifica di

                      Non ho trovato nulla di già pronto online. Comunque per conoscere lo stato di un processo, devi leggere /proc/<pid-del-processo>/status

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • F
                        frank92 Bannato User Attivo • ultima modifica di

                        Con ulimit posso limitare anche l'utilizzo della CPU?
                        Per esempio per limitare l'utilizzo della cpu con ulimit a 20% come faccio?

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • P
                          paolino Moderatore • ultima modifica di

                          ulimit -t XXX

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • F
                            frank92 Bannato User Attivo • ultima modifica di

                            Facendo ulimit -t 20, limiterà i processi a un consumo massimo del 20% della CPU?

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • P
                              paolino Moderatore • ultima modifica di

                              Si

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti