Hangi uygulamanın ağı kullandığını nasıl anlayabilirim?


9

Mac bilgisayarımı kullanırken ara sıra internet bağlantımın yavaşladığını fark ettim. Etkinlik Monitörü'nü kullanarak bunun bir şeyin bağlantımın destekleyebileceği tam hızda veri indirdiğini görebiliyorum --- ama bundan neyin sorumlu olduğunu nasıl anlayacağımı bilmiyorum. Birkaç farklı şeyden kaynaklanabilir (Dropbox senkronizasyonu; bazı uygulamalar otomatik güncelleme yapıyor; son zamanlarda unutmuş olduğum bir tarayıcı sekmesinde bir video arabelleğe alma), bu yüzden anlatmanın bir yolu olması gerçekten kullanışlı olurdu hangi uygulama ağ kullanımından sorumludur. OS X'te böyle bir şey mümkün mü? İdeal olarak ücretsiz bir çözüm arıyorum. (Komut satırı iyi.) Bir fark yaratırsa Snow Leopard'dayım.

Yanıtlar:


6

Bu dtracetek astarı deneyebilirsiniz :

sudo dtrace -n 'syscall::recvfrom:return { @[pid,execname] = sum(arg0); }'

Bir süre çalışmasına izin verin, sonra Control-C'ye basın. İşlemler arasında dağıtılan soketlerden okunan bayt sayısının bir özetini basacaktır. Daha detaylı görünümü için, yerine sumgöre quantize. Ya da sadece, yerine okur soket sayımını görmek için sumtarafından count.

Feragatname: Bunu sadece Lion'da denedim, ancak AFAIK SL ve Lion arasında dtrace yeteneğinde büyük bir değişiklik olmadı.


1
Çok teşekkürler! Basit ve etkili ve tam olarak ihtiyacım olanı yapıyor. Snow Leopard'da gayet iyi çalışıyor.
Nathaniel

... aslında "toplamı" kullanarak sayılar biraz garip görünüyor - Google Chrome genellikle negatif bir sayı alır (!). Ama nicemleme kullanarak mantıklı görünüyorlar.
Nathaniel

Negatif sayılar, ha? Belki bir taşma vakası olabilir. Veya küçük negatif sayılar alırsanız, bir hata oluştuğunda sistem çağrılarının -1 döndürdüğünü unutmayın. Taşma olursa, benim tahminim 64 bit çekirdeği çalıştırdığınızda gerçekleşmeyecek olmasıdır.
Harald Hanche-Olsen

Orta büyüklükteki negatif sayılardır. İşte tipik bir çıktı (bu sayfa Chrome'a ​​yeniden yüklenirken alınır): 250 Google Chrome -159; 39 KernelEventAgen 1; 19 mDNS Yanıtlayıcı 2240; ancak onları yanlış yorumlayabilirim - 'quanitze' kullandığımda, negatif değerler içeren bir "değer" sütunu ve "sayım" sütunu var. Sum komutunun (value) * (count) toplamını rapor ettiği görülmektedir. Belki negatif değerler gelen paketler veya başka bir şey anlamına gelir?
Nathaniel

Hayır, bu tamamen gelen verilerle ilgili… Sanırım krom, sokette ayarlanan kısa bir zaman aşımı ile recvfrom'u çağırarak sık sık yoklama yapıyor, bu durumda veri yoksa dönüş değeri -1 ile sonuçlanıyor. Recvfrom kılavuz sayfasına bakınız.
Harald Hanche-Olsen

6

Güvenlik duvarları

Little Snitch veya HandsOff'u kullanabilirsiniz . Onlar büyük güvenlik duvarları ve her ikisi de işi yapacak bir "Ağ İzleyicisi" özelliği vardır:

Little Snitch , gelen ve giden tüm ağ trafiğinin ayrıntılı bilgilerini gösteren bir Ağ İzleyicisi içerir.
Menü çubuğundaki bir durum simgesi, geçerli ağ etkinliğinin bir özetini sunar ve yeni trafik olaylarında otomatik olarak daha kapsamlı bilgiler içeren bir monitör penceresi açılır.

Hands Off ağınıza ve disklerinize uygulamaların erişimini izlemek ve kontrol etmek için kullanılan bir uygulamadır. Normalde fark edilmeyen faaliyetleri izleyebilmek, özel bilgilerinizin aktarılması hakkında bilinçli kararlar almanızı ve böylece gizli bilgi sızıntısını önlemenizi sağlar.

resim açıklamasını buraya girin resim açıklamasını buraya girin

Ağ monitörleri: Little Snitch (solda), HandsOff (sağda)

Nettop

Ücretsiz ve yerleşik bir cli çözümü (ne yazık ki Snow Leopard'a dahil değildir) nettop olacaktır . nettop, trafiği program ve bağlantı noktasına göre gruplandırır ve çeşitli ağ istatistiklerini ölçer.

Diğer

Trafiği yakalayan ve ölçen ( iftop , wireshark , tcpdump ) birkaç program daha vardır , ancak kaynak kodunu bilmezler . Bağlantıyı kurmak için netstat kullanmalısınız .


Teşekkürler! Soruyu, ideal bir şekilde ücretsiz bir çözüm aradığımı göstermek için düzenledim (30 € sadece çok nadiren kullanacağım bir şey için çok fazla), ancak bunu yapmanın ücretsiz bir yolu yoksa Bu cevabı kabul edeceğim.
Nathaniel

Üzgünüm benim hatam. Ücretsiz bir alternatif bulmaya çalışacağım ve cevabımı güncelleyeceğim.
mspasov

Ha! nettopbenim için yeniydi. Kullanışlı görünüyor.
Harald Hanche-Olsen

Mümkünse bu yanıtı da kabul ediyorum. Lion'a geçersem nettop gerçekten kullanışlı olacak gibi görünüyor.
Nathaniel

4
sudo fs_usage -f network

size tüm uygulamaların (ve işlemlerin) tüm ağ erişimini verir. Genellikle çok fazla trafik oluşturan süreç, çıktıda en sık görünen süreçtir.


1
Teşekkürler, bu gerçekten yararlı. Bu soruya verilecek faydalı cevapların sayısından çok etkilendim.
Nathaniel

1

"DTrace kitap" bunu yapan bir komut dosyası, soconnect.d vardır.

"Mac OS X" sürümünü kopyalayın, bir metin dosyasına yapıştırın ve ardından ile terminalden çalıştırın sudo dtrace -s soconnect.d.


Ancak bu, bir işlemin aldığı ağ trafiği miktarı hakkında bir fikir vermez mi? Anlayabildiğim kadarıyla sadece bağlantıları izler.
Harald Hanche-Olsen

1

Etkinlik Monitörü ayrıca 10.9'dan beri alınan ve gönderilen baytlar için sütunlara sahiptir:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.