Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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.
- İlk web sitesi myfirstwebsite ana bilgisayar üst bilgisini ()
- 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
.
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.
Değişiklikler kullanıcı hesabınız için kaydedilir. bir sonraki çalıştırmanızda top
seç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.
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.
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.
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 top
iş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.
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.
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:
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.
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.
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.
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.
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 htop
iç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.