Granska processor och minne på din Linux-server
Resurser som CPU och minne (RAM) är en integrerad del av webbplatsens funktioner. Om din kod använder för mycket kan webbplatsen bli långsam eller sluta fungera helt. Alla andra processer (som e-post) delar samma resurser med webbplatserna på din server. Varje process som tar mer än deras (förväntade) rättvisa andel kan ta ner servern helt.Varför skulle jag behöva kontrollera resursanvändningen?
- Din databasdrivna webbplats (som WordPress) är långsam.
- E-post tar lång tid att komma fram.
- Din webbplats visar ett fel eller snurrar bara
- De uppgifter som utförs på din server tar längre tid än normalt (t.ex. säkerhetskopior).
Hur kontrollerar jag resursanvändningen?
Linux erbjuder flera verktyg för att undersöka processor- och minnesanvändning som topp , sar och klocka .
Med det översta kommandot kan du visa systemuppgifter som körs i realtid. Du kan se övergripande information som drifttid, genomsnitt för belastning, processor och minnesanvändning. Med -c- omkopplaren kan du se programnamnet under COMMAND. För en fullständig lista över genvägar använder du man top i SSH.
[root @ server ~] $ top -c top - 15:08:23 upp 115 dagar, 6:37, 2 användare, belastning genomsnitt: 1,76, 1,35, 1,13 uppgifter: 330 totalt, 1 igång, 326 vilande, 0 stoppad, 3 zombie-CPU: er: 0,7% us, 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 totalt, 28808088k använt, 3946584k gratis, 321260k buffertar Utbyte: 8388604k totalt, 25992k använt, 8362612k gratis, 8140560k cachat PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 6926 mysql 20 0 130g 16m 22m S 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 / inbäddad / bin / ruby -Eascii-8bit: ascii-8bit /
System Activity Reporter (sar) är ett verktyg som hjälper dig att övervaka din servers användningsstatistik. Sar är en del av sysstat- paketet. Om du använder kommandot sar får du bara statistik under det senaste dygnet.
sar -f låter dig visa historiska loggfiler från kl. 12.00 för dagen.
[root @ server ~] $ sar -f / var / log / sa / sa10 Linux 2.6.32-042stab141.3 (server-hostname.net) 20/10/2022 _x86_64_ (24 CPU) 12:00:01 CPU % användare% trevligt%s ystem% iowait%s kricka% tomgång 12:10:01 alla 1,92 0,00 0,39 0,00 0,00 97,69 00:20:01 alla 1,63 0,00 0,34 0,00 0,00 98,02 12:30:01 alla 1,64 0,00 0,41 0,01 97,94 00:40:01 alla 2,85 0,00 0,61 0,00 0,00 96,54 00:50:01 alla 2,71 0,00 0,57 0,01 0,00 96,72 01:00:01 alla 2,02 0,00 0,38 0,00 0,00 97,60 01:10:01 alla 1,43 0,00 0,30 0,00 0,00 98,27
sar -r visar ledig och använd minnesstatistik
[root @ server ~] $ sar -r Linux 2.6.32-042stab141.3 (server-hostname.net) 20/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 00:20:01 99760972 32048132 24.31 1429884 22631184 7960428 5.68 12:30:01 99751920 32057184 24.32 1429920 22638392 7974804 5.69 12:40:01 3249 2119 593 8035000 5.73 00:50:01 99752696 32056408 24.32 1430012 22644804 7891100 5,63
Med Linux- klockan kan du titta på kommandon eller uppgifter när de slutförs eller körs. titta på "mysql -e'show full processlist; '" visar alla pågående mysql-frågor och uppdateras varannan sekund.
Varje 2.0: e: mysql -e'show full processlist; ' Lör 12 feb 11:09:56 2022 Id-användare Värd db Kommando Tid Tillståndsinfo 26574057 mysql_db1 localhost mysql_db1 Fråga 2 Skickar data SELECT * from db_data_main where DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1 Query data SOT 26340 mysql_wp3 localhost mysql_wp3 Sömn 0 NULL 26574068 rot localhost NULL Fråga 0 init visa fullständig processlista
Nästa steg
Hög resursanvändning kan orsakas av skadlig trafik eller en hängande process (t.ex. en stor säkerhetskopia). Frekvent hög resursanvändning som inte orsakas av trafik eller hängande kan endast lösas genom optimering eller uppgradering. Tänk på att om du inte optimerar din server och webbplatser är en uppgradering bara en tillfällig åtgärd.
Tecken på att det kan vara dags att optimera (server och webbplats (er))
- Inte orsakad av skadlig trafik
- Platskoden är föråldrad / genererar föråldrade fel
- CPU-användningen är hög men minnesanvändningen är låg.
- MySQL-frågor fördröjs när trafiken ökar
Tecken på att det kan vara dags att uppgradera
- Trafiken till dina webbplatser ökar stadigt
- Servern har optimerats för dina webbplatsbehov
- Du har optimerat dina webbplatser genom att ta bort långa mysql-frågor och uppdatera koden för att stödja nyare versioner av PHP.
- Du använder cachning (t.ex. Memcache) men belastningen är fortfarande hög