Linux sunucunuzdaki CPU ve belleği inceleyin
CPU ve bellek (RAM) gibi kaynaklar sitenizin işlevselliğinin ayrılmaz bir parçasıdır. Kodunuz çok fazla kullanılırsa, site yavaşlayabilir veya çalışmayabilir. Diğer tüm işlemler (e-posta gibi) sunucunuzdaki sitelerle aynı kaynakları paylaşır. Adil paylaşımından (beklendiği) daha fazlasını alan herhangi bir işlem sunucuyu tamamen kapatabilir.Kaynak kullanımını neden kontrol etmem gerekiyor?
- Veritabanı odaklı siteniz (WordPress gibi) yavaş.
- E-postanın size ulaşması uzun sürüyor.
- Siteniz bir hata gösteriyor veya sadece dönüyor
- Sunucunuzda gerçekleştirilen görevler normalden daha uzun sürüyor (yedekleme gibi).
Kaynak kullanımını nasıl kontrol ederim?
Linux, CPU ve bellek kullanımını araştırmak için top , sar ve watch gibi çeşitli araçlar sunar.
Top komutu, gerçek zamanlı olarak çalışan sistem görevlerini görüntülemenizi sağlar. Çalışma süresi, ortalama yük, CPU ve bellek kullanımı gibi genel bilgileri görebilirsiniz. -C anahtarı, COMMAND altında program adını görmenizi sağlar. Kısayol tuşlarının tam listesi için SSH'de man top kullanın.
[root @ server ~] $ top -c top - 15:08:23 yukarı 115 gün, 6:37, 2 kullanıcı, yükleme ortalaması: 1.76, 1.35, 1.13 Görevler: 330 toplam, 1 çalışıyor, 326 uyuyor, 0 durduruldu, 3 Zombi CPU (CPU):% 0,7 ABD, 2,9%s y,% 0.0 ni,% 81.5 id,% 14.9 wa,% 0.0 yüksek, 0.1%s i, 0.0%s t Mem: 32754672k toplam, 28808088k kullanılmış, 3946584k boş, 321260k tampon Değiştirme: 8388604k toplam, 25992k kullanılmış, 8362612k boş, 8140560k önbelleğe alınmış PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + KOMUT 6926 mysql 20 0130g 16gm 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 / gömülü / bin / ruby -Eascii-8bit: ascii-8bit /
Sistem Etkinliği Raporlayıcısı (sar) , sunucunuzun kullanım istatistiklerini izlemenize yardımcı olacak bir araçtır. Sar , sysstat paketinin bir parçasıdır. Sadece sar komutunu kullanmak size son 24 saate ait istatistikleri verecektir.
sar -f , gün için 12: 00'dan başlayarak geçmiş günlük dosyalarını görüntülemenizi sağlar.
[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 % user% hoş%s ystem% iowait%s turkuaz% boşta 00:10:01 tümü 1,92 0,00 0,39 0,00 0,00 97,69 12:20:01 AM tümü 1,63 0,00 0,34 0,00 0,00 98,02 12:30:01 tümü 1.64 0,00 0,41 0,01 0,00 97,94 12:40:01 AM tümü 2,85 0,00 0,61 0,00 0,00 96,54 12:50:01 AM tümü 2,71 0,00 0,57 0,01 0,00 96,72 01:00:01 tümü 2.02 0,00 0,38 0,00 0,00 97,60 01:10:01 tümü 1.43 0,00 0,30 0,00 0,00 98,27
sar -r boş ve kullanılan bellek istatistiklerini gösterir
[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 2263864392 7974804 5.69 12:401048 8035000 5,73 12:50:01 99752696 32056408 24,32 1430012 22644804 7891100 5,63
Linux saat, komutları veya görevleri tamamlanırken veya yürütülürken izlemenizi sağlar. watch "mysql -e'show full processlist; '" tüm çalışan mysql sorgularını gösterecek ve her 2 saniyede bir güncellenecektir.
Her 2.0s: mysql -e'nin tam işlem listesi; ' Sat Şub 12 11:09:56 2022 Kimliği Kullanıcı Ana Bilgisayarı db Komut Zaman Durum Bilgisi 26574057 mysql_db1 localhost mysql_db1 Sorgu 2 db_data_main'den SELECT * gönderiliyor burada DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1 Sorgu 1 Sending 1 Sending mysql_db1 mysql_wp3 localhost mysql_wp3 Uyku 0 NULL 26574068 kök localhost NULL Sorgu 0 init tam işlem listesini göster
Sonraki Adımlar
Yüksek kaynak kullanımı, kötü amaçlı trafik veya askıda kalma işleminden (büyük bir yedekleme gibi) kaynaklanabilir. Trafik veya askıda kalma sürecinden kaynaklanmayan sık sık yüksek kaynak kullanımı, yalnızca optimizasyon veya yükseltme ile çözülebilir. Sunucunuzu ve sitelerinizi optimize etmiyorsanız, yükseltmenin yalnızca geçici bir çözüm olduğunu unutmayın.
Optimize etme zamanının geldiğini gösteren işaretler (sunucu ve site (ler))
- Kötü amaçlı trafikten kaynaklanmıyor
- Site kodunun süresi dolmuş / kullanımdan kaldırılmış hatalar oluşturuyor
- CPU kullanımı yüksek ancak bellek kullanımı düşük.
- Trafik arttığında MySQL sorguları gecikiyor
Yükseltme zamanının geldiğine dair işaretler
- Sitelerinizin trafiği istikrarlı bir şekilde artıyor
- Sunucu, sitenizin ihtiyaçlarına göre optimize edildi
- Uzun mysql sorgularını ortadan kaldırarak ve daha yeni PHP sürümlerini desteklemek için kodu güncelleyerek sitelerinizi optimize ettiniz.
- Önbelleğe alma kullanıyorsunuz (Memcache gibi) ancak yük hala yüksek