Aracılığıyla paylaş


Bölüm 3.2 - Linux görev yöneticileri, üst ve htop

Şunlar için geçerlidir: Linux'ta .NET

Bu makalede, işlemleri izlemek için ve htop komut satırı araçlarının nasıl kullanılacağı top anlatlenmektedir.

Önkoşullar

Önceki bölümlerde olduğu gibi bu bölüm, sorun gidermeye başladığınızda izleyebileceğiniz teoriye ve sorumlulara daha fazla vurgu yapmak üzere yapılandırılmıştır. Herhangi bir önkoşulu yoktur. Ancak, şu ana kadar bu eğitimin tüm adımlarını izlediyseniz, aşağıdaki öğelerin zaten ayarlanmış olması gerekir:

  • Nginx'in iki web sitesi vardır:
    • İlk web sitesi myfirstwebsite ana bilgisayar üst bilgisini ()http://myfirstwebsite kullanarak istekleri dinler ve istekleri 5000 numaralı bağlantı noktasında dinleyen demo ASP.NET Core uygulamasına yönlendirir.
    • İkinci web sitesi buggyamb (http://buggyamb) ana bilgisayar üst bilgisini kullanarak istekleri dinler ve istekleri 5001 numaralı bağlantı noktasında dinleyen ikinci ASP.NET Core örnek buggy uygulamasına yönlendirir.
  • Her iki ASP.NET Core uygulaması da sunucu yeniden başlatıldığında otomatik olarak yeniden başlatılan hizmetler olarak çalışır veya uygulamalar yanıt vermeyi durdurur veya başarısız olur.
  • Linux yerel güvenlik duvarı etkinleştirilir ve SSH ve HTTP trafiğine izin verecek şekilde yapılandırılır.

Bu bölümün hedefi

Bir performans sorununu giderirken, kaynak tüketiminin zaman içinde nasıl geliştiğini anlamak için bir işlemin CPU ve bellek kullanımını izlemeniz gerekebilir. Windows'da, bunu yapmak için Görev Yöneticisi'ni kullanabilirsiniz. Linux'ta aynı şeyi başarmayı hedefleyen çeşitli araçlar vardır.

Bu bölümde, işlemleri izlemek için ve htop komut satırı araçları incelenirtop.

üst

Görev Yöneticisi eşdeğerini Linux'ta açmak için komutunu çalıştırın top .

Üst komutun ekran görüntüsü.

Bu örnekte, PID 19933 için listelenen ilk işlemde işlemin yüksek CPU kullanımı sergilediğini ve bellek kullanımının da yüksek olduğunu gözlemleyebilirsiniz.

Sütunları seçme ve seçimini kaldırma

Aracın sağladığı görünüme top sütun eklemek veya kaldırmak için, aracı çalıştırırken F'yi seçin. Yıldız işareti (*) ile işaretlenen sütunlar, görüntülenmek üzere seçilen sütunlardır. Kullanılabilir sütunlarda gezinmek için ok tuşlarını kullanın ve sütunları seçmek veya seçimini kaldırmak için Ara Çubuğu'nı kullanın. Ardından çıkmak için Esc'yi seçin.

Sütun bilgilerinin ekran görüntüsü.

Değişiklikler kullanıcı hesabınız için kaydedilir. bir sonraki çalıştırmanızda topseçtiğiniz sütunları görürsünüz.

Çıktıyı kullanıcılara göre filtreleme

Sorunlu kaynak tüketimi senaryolarını hedefleyebilmek için çıkışın nasıl filtreleneceği bilinmesi top önemlidir. En yaygın yöntemlerden biri, işlemleri kullanıcı adına göre filtrelemektir. U'yı seçip kullanıcı adını yazabilirsiniz. Aşağıdaki ekran görüntüsünde top , www-data kullanıcısı için kullanılabilir işlem anlık görüntülerini filtreleyen araç gösterilmektedir.

Kullanıcı bilgilerinin ekran görüntüsü.

Enter'ı seçtiğinizde, belirli bir kullanıcı (bu örnekteki www-data kullanıcısı) tarafından çalıştırılan işlemleri görürsünüz.

Kullanıcı bilgilerinin ekran görüntüsü.

Filtrelenmiş top görünümün çıkışını incelediğinizde, işlemlerden ikisinin .NET işlemleri olduğunu görebilirsiniz. Bu iki işlem iki ASP.NET Core uygulamasını çalıştırırken, diğer iki işlem Nginx'e aittir.

Komutu doğrudan çalıştırdığınızda top filtreleri kullanabilirsiniz. Örneğin, komutunu çalıştırırsanıztop -u www-data, aracı açıp kullanıcıya göre filtrelemek için U'yı seçtiğinizde elde edeceğiniz çıktının top aynısını verir.

Boşta kalan işlemleri kaldırma

Çıktıyı top -i yalnızca CPU kullanan işlemleri gösterecek şekilde filtrelemek top için I'yi seçin veya komutunu çalıştırın. Aşağıdaki ekran görüntüsünde komutun çıkışı gösterilmektedir top -i -u www-data . top Www-data kullanıcı hesabı kullanılarak başlatılan dört işlem olsa bile çıkışın boşta kalan işlemleri gizlediğini görebilirsiniz. Yalnızca PID=19933 içeren işlem CPU tüketir.

Bilgileri kaldırma ekran görüntüsü.

Anahtarı değiştirmek ve boşta kalan işlemleri de göstermek için yeniden I'yi seçin.

Sonlandırma işlemleri

Bir işlemi sonlandırmak veya sonlandırmak için işleme sonlandırma sinyali göndermeniz gerekir. Daha önce bir işlemi sonlandırmak için komutunu kullandığımızı sudo kill -9 <PID> hatırlayabilirsiniz. ayrıca kullanarak topişlemleri de öldürebilirsiniz. Çalışırken bir işlemi top sonlandırmak için K'yi seçin ve ardından sonlandırmak istediğiniz işlemin PID'sini yazın.

Kill komutunun ekran görüntüsü.

Enter'ıtop seçtikten sonra sinyal türünü sorar. "Sonlandır" sinyali (15/sigterm) göndermek için Bir kez daha Gir'i seçin.

En üstteki kill komutunun ekran görüntüsü.

Birkaç saniye sonra PID 122632 işleminin listede eksik olduğunu göreceksiniz. Listelerde "122632" işleminin BuggyAmb ASP.NET Core uygulamasına karşılık geldiğini unutmayın. Otomatik olarak başlatacak şekilde yapılandırıldığından, kapatma işleminden sonra yeni bir PID'ye sahip yeni bir .NET işleminin başladığını görürsünüz.

htop

Htop , benzer şekilde gerçek zamanlı olarak sistem izleme için bir işlem görüntüleyicisi ve metin modu uygulamasıdır top. Kullanımı kolaydır ve çalışan işlemlerin tam listesini görüntüler.

Araç htop , bu kursun sanal sunucusunu yüklemek için kullanılan Ubuntu Linux dağıtımında önceden yüklenmiştir. Linux dağıtımınızda yüklü değilse htop , yüklemek için Linux'taki paket yöneticilerini kullanabilirsiniz. (Bkz. Bölüm 1.3 - Ayrıntılar için .NET'i Linux'a yükleyin.)

Aracı başlatmak için komutunu çalıştırın htop . Aşağıdakine benzer renkli bir çıkış görürsünüz:

Kill htop komutunun ekran görüntüsü.

Not

Alt satır, kullanabileceğiniz işlev tuşlarını gösterir. F6'yı seçerek farklı seçeneklere göre sıralayın, ok tuşlarını kullanarak sütunu seçin PERCENT_MEM ve ardından Enter tuşuna basın. Bu işlem, işlemleri bellek kullanımına göre sıralar.

Bellek kullanımının ekran görüntüsü.

komutunda top olduğu gibi, çeşitli işlevler için klavye kısayollarını kullanabilirsiniz. Örneğin, listeden kullanıcı adını seçmek için U'yı seçin.

Kullanıcı adı bilgilerinin ekran görüntüsü.

Ancak, çıktıda htop kafa karıştırıcı bir şey var. Son örneklerin çıkışına bağlı olarak, www-data kullanıcısı için dört işlem görmeyi beklemeniz gerekir. Ancak, çok daha fazla girdi olduğunu görüyoruz. Bu davranışa neden olan nedir?

Çıkıştaki fark, hem işlemleri hem de bunların iş parçacıklarını varsayılan olarak gösterdiğinden htop oluşur. İş parçacıklarını görmek istemiyorsanız, çıkışı daha net hale getirmek için iş parçacığı görünümünü her zaman devre dışı bırakmanızı öneririz. İş parçacığı görünümünü devre dışı bırakmak ve yalnızca işlemleri görmek için Shift H'yi+ seçin. Aşağıdaki ekran görüntüsünde iş parçacığı olmayan işlemler gösterilmektedir.

İşlem bilgilerinin ekran görüntüsü.

Bir işlemi sonlandırmanız gerekiyorsa, ok tuşlarını kullanarak işlemi seçin, F9'u seçin ve ardından "sonlandır" sinyali göndermek için Enter'ı seçin.

Sonlandırma bilgilerinin ekran görüntüsü.

Bu kısa genel bakış, sisteminizde hangi işlemlerin çalıştığını ve kaynakları tüketen işlemleri anlamanıza olanak sağlamalıdır. uygulamasından çıkmak htopiçin F10 veya Ctrl+C'yi seçin.

Sonraki adımlar

Bu serinin sonraki bölümünde (Bölüm 3.3 - Hata ayıklayıcılar, çekirdek dökümleri ve çekirdek dökümleri toplama) hata ayıklayıcıları ve döküm dosyalarını ele alır.