Disabilitare lo swap per un singolo processo senza permessi di root
Vorrei sapere se c'è un modo per un utente senza permessi di root di lanciare un processo facendo in modo che questo non usi lo swap anche se le impostazioni di sistema lo consentono.
|
perche'... con i permessi di root riusciresti a farlo?
|
Per il singolo processo non lo so, ma se avessi i privilegi di root potrei disabilitare lo swap impostando la swappiness a 0.
Nel mio caso non lo posso fare, ma visto che il processo che lancio è un processo utente, chiedere di non usare lo swap per un mio processo mi sembra una richiesta lecita da fare al sistema operativo. |
|
Quote:
Pero' ho dubbi sulla necessita' di fare cio'. Se il sistema e' settato correttamente, un applicativo che necessita di molta ram dovrebbe swappare pochissimo ( e quindi diventa inutile settare manualmente ). Se non c'e' sufficiente ram, o swappi o vai in out of memory. |
La mlock l'avevo vista in giro sul web, solo che mi pare di capire che devo chiamarla sulla singola allocazione, e questo è un problema perchè dovrei modificare pesantemente il codice sorgente e soprattutto capire quali sono le allocazioni più grandi.
I cgroups non li conoscevo, adesso provo a leggere bene per vedere se fanno al caso mio. Comunque il problema è che il programma in questione è stato scritto con l'ipotesi di swap disabilitato. Purtroppo con certi parametri deve allocare molta memoria e se va in swap intasa la macchina. Quindi, nel caso in cui la memoria richiesta sia troppa, preferisco che le malloc falliscano: in questo caso il programma ritorna un messaggio di errore forzando l'utente a modificare i parametri. |
Come non detto: ho visto che con l'mlock si può fare una sola chiamata per tutte le allocazioni del processo con l'istruzione:
Codice:
mlockall(MCL_CURRENT | MCL_FUTURE); |
Tutti gli orari sono GMT +1. Ora sono le: 18:24. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.