Få og sett maks trådtelling i linux

Få og sett maks trådtelling i linux
“Begrepet“ prosess ”refererer til et for øyeblikket kjørende program, mens“ tråd ”refererer til en lett prosess. Når flere tråder utføres i et program ved å dele det samme minnet, kalles det multithreading. I en multithreaded prosess kan du kjøre flere tråder samtidig fordi formålet er å øke ytelsen.

Det er en grense for antall tråder i Linux for effektiv ytelse. Innstilling av tråd-max-kjerneparameteren sikrer at antall tråder per prosess holder seg på den grensen eller under den. Hvis du også vil vite hvordan du angir maksimal telling, kan du lese guiden vår. I denne guiden vil vi forklare hvordan du får og setter den maksimale trådtellingen i Linux.”

Få og sett maks trådtelling i linux

La oss dele denne delen i to deler; Den første er å få trådtellingen, og den andre er å sette maks. Tegnstelling.

Få maksimale tråder teller

Du kan kontrollere det maksimale antall tråder ved hjelp av Tråd-max-kjerneparameter. “Fil/proc/sys/kjerne/tråder-max” definerer denne parameteren.

Ved hjelp av “Cat” -kommandoen kan du se denne filen.

Cat/Proc/Sys/Kernel/Threads-Max

Her viser utgangen 45444 maksimalt 45444 tråder Kjernen kan utføre.

Du kan også slå opp tråder-max-verdien med “sysctl” -kommandoen.

sudo sysctl -a | grep tråder-max

I tillegg, “VM.max_map_count ” og “Kjerne.PID_MAX”Spesifiser ytterligere to grenser. Disse grensene forhindrer også å lage nye tråder under høy belastning.

Den spesifiserer det maksimale antallet PID -er vil vikle rundt.

Cat/Proc/Sys/Kernel/PID_MAX

Her er den maksimale verdien av kjernen.PID_MAX -verdien er 4194304. Det betyr at kjernen kan utføre maksimalt 4194304 prosesser samtidig.

En prosess kan bare ha et visst antall virtuelle minneområder (VMA) under “MAX_MAP_COUNT” parameter.

CAT/Proc/SYS/VM/MAX_MAP_COUNT

En prosesss minnekartiserte regioner er uttrykt i utgangen ovenfor.

En tråd og en prosess fungerer på samme måte i Linux -kjernen. Derfor begrenser verdien som begrenser antall prosesser også indirekte antall tråder. Av denne grunn, kjerne.PID_MAX må være større enn det totale antall prosesser og tråder sammen.

Mange tråder bruker mer minne for å jobbe med serveren. “VM.max_map_count ” begrenser antall tråder og virtuelt minne for de som trenger dette minnet for å angi sin private stabel.

En annen grense for SystemD -systemer er “CGroup Pids.maks ” parameter, som er standard til 12 288. Noen ganger kan denne standardressursgrensen være for restriktiv eller ikke nok.

Alternativt kan det være nyttig å gjøre spesifikke justeringer av noen av SystemDs TASKSMAX -innstillinger. De “UserTaskSmax” Parameter overstyrer standardgrensen i [Innloggings] -delen av/etc/SystemD/Logind.konf.

grep -i "^usertasksmax"/etc/Systemd/logind.konf

Akkurat som SystemD håndhever trådgrenser for programmer som kjøres fra påloggingsskallet, gjør det det samme.

Angi maksimal trådtall

Så langt har vi sett på den maksimale trådtellingen av forskjellige parametere og vil nå se hvordan du angir disse maksimale trådene. Ulike alternativer er tilgjengelige for å sette maksimalt antall tråder per prosess. Trådnummeret er satt her for en spesifikk prosess.

Ved hjelp av følgende kommando kan du midlertidig angi Threads-Max-kjerneparameteren ved kjøretid.

sudo/bin/su -c "ekko 150000>/proc/sys/kjerne/tråder -max"

Du kan også angi tråd-max-kjerneparameteren permanent ved å legge til kjerne.tråder-max = til /etc /sysctl.Conf -fil.

sudo /bin /su -c "sysctl -w kjerne.tråder-max = 170000 >> /etc /sysctl.Conf "

Nå setter vi PID_MAX -parameteren til 200000. Dette betyr at kjernen kan utføre opptil 200 000 prosesser samtidig.

sudo/bin/su -c "Echo 200000>/proc/sys/kjerne/pid_max"

Du spesifiserer også det maksimale antall VMA -er eller virtuelle minneområder som en prosess kan eie med parameteren "MAX_MAP_COUNT".

sudo/bin/su -c "ekko 600000>/proc/sys/vm/max_map_count"

For alle brukere angir “UserTaskSmax” trådgrensen og spesifiserer TaskSmax -innstillingen på SystemD -systemene.

SED -i "S/^UserTaskSmax/#UserTaskSmax/"/etc/Systemd/System.konf
Echo "UserTaskSmax = 60000" >>/etc/Systemd/System.konf
grep -i "usertasksmax"/etc/systemd/logind.konf

Systemparametere begrenser også antall tråder per prosess, muligens før minnet og operativsystemet blir begrensende faktorer. Å øke antall tråder er også mulig ved å redusere stabelstørrelsen per tråd.

Innpakning

I denne guiden forklarte vi en multithreading eller multi-thread prosess. Deretter teller vi hver prosesss maksimale trådgrense og lærer om viktigheten av det maksimale antall tråder. Etter å ha tatt all denne informasjonen, kan vi angi maksimumsverdien på tråder.

Du kan angi den maksimale verdien av tråder på flere måter, som vi har forklart i denne guiden. Ved å se og forstå dette, kan du også angi maksimale verdier for trådene dine i Linux.