Gennaio 25, 2022

The Geek Diary

Il post spiega come i limiti del semaforo del kernel possono essere modificati in un server CentOS/RHEL.

Parametri del kernel per impostare i limiti del semaforo

I parametri del kernel per impostare i limiti del semaforo sono:

kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNISEMMSL - max semaphores per arraySEMMNS - max semaphores system wideSEMOPM - max ops per semop callSEMMNI - max number of arrays

Modifica dei limiti del semaforo

Se è necessario modificare un limite, è necessario tenere conto di questo (numero massimo di array)*(max semafori per array) >= (max semafori a livello di sistema). Non c’è bisogno di avere più semafori a livello di sistema se limitati dalla quantità di un possibile numero di array con semafori massimi per esso.

Per esempio:

# sysctl -a| grep kernel.semkernel.sem = 250 32000 32 128

Per questo esempio, dobbiamo aumentare i semafori massimi per limite di array da 128 a 192. Il max semafori a livello di sistema può anche essere aumentato a 48000 ( 250*192 = 48000 >= 32000) o mantenuto come 32000. In questo scenario, è mantenuto a 32000.

Per impostare il parametro del kernel in modo dinamico, cioè senza la necessità di riavviare il server.

# sysctl -w kernel.sem="250 32000 32 192"kernel.sem = 250 32000 32 192

Se tutto va bene con il sistema come previsto, modificare il parametro del kernel aggiungendolo a/etc / sysctl.file conf per garantire che il valore persista dopo il riavvio del server.

# cat /etc/sysctl.conf | grep kernel.semkernel.sem = 250 32000 32 192

Se si sceglie di impostarlo direttamente nel file senza utilizzare sysctl-w, è necessario ricaricare il file:

# sysctl -p

È possibile verificare i limiti attualmente impostati da:

# ipcs -ls------ Semaphore Limits --------max number of arrays = 192max semaphores per array = 250max semaphores system wide = 32000max ops per semop call = 32semaphore max value = 32767

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.