Gennemgå CPU og hukommelse på din Linux -server
Ressourcer som CPU og hukommelse (RAM) er en integreret del af dit sites funktionalitet. Hvis din kode bruger for meget, kan hjemmesiden blive langsom eller stoppe med at fungere helt. Alle andre processer (f.eks. E -mail) deler de samme ressourcer med sites på din server. Enhver proces, der tager mere end deres (forventede) rimelige andel, kan fjerne serveren helt.Hvorfor skulle jeg kontrollere ressourceforbruget?
- Dit databasestyrede website (som f.eks. WordPress) er langsomt.
- Det tager lang tid at modtage e -mail.
- Dit site viser en fejl eller drejer bare
- Opgaver, der udføres på din server, tager længere tid end normalt (f.eks. Sikkerhedskopier).
Hvordan kontrollerer jeg ressourceforbrug?
Linux tilbyder flere værktøjer til at undersøge CPU- og hukommelsesforbrug som f.eks. Top , sar og watch .
Topkommandoen giver dig mulighed for at se systemopgaver, der kører i realtid. Du kan se overordnede oplysninger som oppetid, gennemsnitsbelastning, CPU og hukommelsesforbrug. Med -c -kontakten kan du se programnavnet under COMMAND. Du kan finde en komplet liste over genvejstaster ved at bruge man top i SSH.
[root@server ~] $ top -c top - 15:08:23 op 115 dage, 6:37, 2 brugere, indlæsningsgennemsnit: 1,76, 1,35, 1,13 Opgaver: 330 i alt, 1 kører, 326 sovende, 0 stoppet, 3 zombie -CPUer: 0,7%os, 2,9%s y, 0,0%ni, 81,5%id, 14,9%wa, 0,0%hi, 0,1%s i, 0,0%s t Mem: 32754672k i alt, 28808088k brugt, 3946584k gratis, 321260k buffere Swap: 8388604k i alt, 25992k brugt, 8362612k gratis, 8140560k cachelagret PID -BRUGER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6926 mysql 20 0 130g 16g 22m S.0 52.2 27065: 56/usr/sbin/mysqld --basedir =/usr --datadir =/var/lib/mysql --plugin-dir =/usr/lib64/mysql/plugin 2454 td-agent 20 0 1210m 160m 2440 S 0,7 0,5 347: 19,48/opt/td-agent/indlejret/bin/rubin -Eascii-8bit: ascii-8bit/
System Activity Reporter (sar) er et værktøj, der hjælper dig med at overvåge din servers brugsstatistikker. Sar er en del af sysstat -pakken. Brug af kommandoen sar alene giver dig statistikker for de sidste 24 timer.
sar -f giver dig mulighed for at se historiske logfiler fra kl. 12.00 for dagen.
[root@server ~] $ sar -f/var/log/sa/sa10 Linux 2.6.32-042stab141.3 (server-hostname.net) 01/10/2022 _x86_64_ (24 CPU) 12:00:01 CPU %bruger %flot%s ystem %iowait%s blågrøn %inaktiv 12:10:01 alle 1,92 0,00 0,39 0,00 0,00 97,69 12:20:01 alle 1,63 0,00 0,34 0,00 0,00 98,02 12:30:01 alle 1,64 0,00 0,41 0,01 97,94 00:40:01 alle 2,85 0,00 0,61 0,00 0,00 96,54 12:50:01 alle 2,71 0,00 0,57 0,01 0,00 96,72 01:00:01 alle 2,02 0,00 0,38 0,00 0,00 97,60 01:10:01 alle 1,43 0,00 0,30 0,00 0,00 98,27
sar -r viser ledig og brugt hukommelsesstatistik
[root@server ~] $ sar -r Linux 2.6.32-042stab141.3 (server-hostname.net) 02/02/2022 _x86_64_ (24 CPU) 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 12:10:01 99454800 32354304 24.55 1429856 22624260 8285744 5.91 12:20:01 99760972 32048132 24.31 1429884 22631184 7960428 5.68 12:30:01 99751920 32057184 24.32 1429920 22638392 7974804 5.69 8035000 5.73 12:50:01 99752696 32056408 24.32 1430012 22644804 7891100 5.63
Linux -uret giver dig mulighed for at se kommandoer eller opgaver, mens de fuldføres eller udføres. se "mysql -e'show full processlist; '" vil vise alle kørende mysql -forespørgsler og opdateres hvert 2. sekund.
Hvert 2.0s: mysql -e'show fuld procesliste; ' Lør. 12 feb. 11:09:56 2022 Id Bruger Host db Kommando Tid Tilstandsinfo 26574057 mysql_db1 localhost mysql_db1 Forespørgsel 2 Afsendelse af data SELECT * fra db_data_main hvor DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1 Query 1m S64 mysql_wp3 localhost mysql_wp3 Dvale 0 NULL 26574068 rod localhost NULL Forespørgsel 0 init Vis fuld procesliste
Næste trin
Høj ressourceforbrug kan være en engangsårsag forårsaget af skadelig trafik eller en hængende proces (f.eks. En stor sikkerhedskopi). Hyppig høj ressourceforbrug, som ikke skyldes trafik eller hængende proces, kan kun løses ved optimering eller opgradering. Husk, at hvis du ikke optimerer din server og dine websites, er en opgradering kun en midlertidig løsning.
Tegn på, at det måske er tid til at optimere (server og site (r))
- Ikke forårsaget af ondsindet trafik
- Sitekoden er forældet/genererer forældede fejl
- CPU -brugen er høj, men hukommelsesforbruget er lavt.
- MySQL -forespørgsler forsinkes, når trafikken øges
Tegn på, at det måske er tid til at opgradere
- Trafikken til dit website (r) er støt stigende
- Serveren er optimeret til dit websites behov
- Du har optimeret dit eller dine website ved at fjerne lange mysql -forespørgsler og opdatere koden til at understøtte nyere versioner af PHP.
- Du bruger cachelagring (f.eks. Memcache), men belastningen forbliver høj