Sistem yükü ne kadar yükselebilir?


12

SSH üzerinden sunucularıma her giriş yaptığımda bana biraz sunucu bilgisi çakıyor. IE IP Adresi, Takas Kullanımı, Bellek Kullanımı, vb. Yanıp sönen diğer şeylerden biri de Sistem Yükü. Şimdi çoğu zaman sistem yük numarası <0.10 ama diğer zamanlarda ben 0.89 (genellikle önyükleme etrafında) kadar gittiğini gördüm.

Bu, sistem yükü ne kadar yükselebilir? Mesela 100.00'a kadar 2.00'e kadar çıkması mümkün mü?


Kesirli kısım CPU kullanımını, ondalık kısım bekleyen işlem sayısını gösterir. Gibi bir şey 100.89daha muhtemel olurdu100.00
Lekensteyn


@Caleb, bunun bir kopya olduğuna katılmıyorum. Bu OP olması mümkün amaçlanan "ne kadar yüksek teneke sistemi yük go (ve hala kabul edilebilir çalıştırın)?" Gibi benzer bir şey sormak. Ancak ifade edildiği gibi, aynı soru değil.
Cyclops

@Cyclops: OP sunuculardaki kabul edilebilir seviyeler hakkında soru sormayı düşünmediyse ve * nix sistemlerinin nasıl çalıştığı hakkında tamamen teorik bir soru sorsaydı, bu konu dışında bir konu olmayacak ve unix'e geçiş için aday olmayacaktı?
Caleb

Yanıtlar:


17

Bu, sistem yükü ne kadar yükselebilir? Mesela 100.00'a kadar 2.00'e kadar çıkması mümkün mü?

Kesinlikle. uptimeMan sayfasına bakarken :

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Bu nedenle, çalıştırmak için bekleyen çok fazla işleminiz varsa (veya G / Ç'yi beklemeyi engelleyen birçok işlem varsa), yüksek bir yük ortalamanız olacaktır. Bu makalede daha ayrıntılı olarak bahsedilmekte ve diğer kaynaklara faydalı bağlantıları bulunmaktadır.

Yüksüz bir sistemde, yük ortalaması tipik olarak 0 <= load_average <= n aralığında olacaktır , burada n sisteminizdeki çekirdek sayısıdır.


1
Evet, G / Ç'yi beklemek çok fazla yük oluşturmak için kolay bir yoldur: Bir nfs paylaşımını monte edin, nfs sunucusunu açın, nfs paylaşımında bir şeye dokunmaya çalışan 10.000 işlemi başlatın: bom, 10.000 yük
Jens Timmerman

5

Canlı sistemlerin binlerce kişiye çarptığını gördüm. Load Average Çekirdeklerin dikkatini çekmek ve CPU'da biraz zaman tanınması için ne kadar rekabetin olduğuna ilişkin bekleme süreçlerine dayalı göreceli bir ölçü. Makine işlerle dolu veya çöküyorsa, bu uzun zaman alabilir.

Kabul edilebilir düzey makineye, çekirdek sayısına, kullanılan çekirdek işi zamanlayıcısının türüne ve yapmasını beklediğiniz işlere bağlıdır. Ben ~ 10 aralığında oldukça mutlu bazı makineleri var ama onlar ~ 40-50 vurmak eğer aşağı bataklık. Diğerleri 2'de belirgin bir şekilde laggy olurlar ve 10'da kullanılamazlar.

Bir çok şey aynı anda yapıldığından ve makine sarıldığı için, yük sırasında yükün yüksek olması olağandışı değildir. Bir masaüstü Linux için önyükleme sırasında vurmak için ~ 1 oldukça normal bir yük düşünürdüm, sonra hiçbir şey yapmadan ~ 0.1'e iniyorum.


3
Küçük düzeltme: Yük Ortalaması bir zaman ölçüsü değildir. Bekleyen ortalama işlem sayısıdır. 1) Bir işlemin bir CPU'yu tutturması ve diğerinin hiç almaması ve 2) sürekli işlem yapan iki işlem arasındaki farkı anlamanın bir yolu yoktur. İkisi de 1.0 yük olacaktı.
Plutor

1
Ciddi çapta bir linux kutusunda 1500+ gördüm. Sonra öldü.
Tom O'Connor

3

Linux'ta, sistem yükü ortalama değerleri üç farklı durumdan birindeki süreçlerden oluşur. Genel olarak, yük ortalamasının CPU zamanı bekleyen veya CPU zamanı tüketen işlem miktarı olduğu söylenebilir. Yük ortalaması genel görünümündeki üç değer, son dakika, son 5 dakika ve son 15 dakika boyunca yük ortalamasıdır.

Yük ortalamasına sayılan üç farklı işlem durumu şunlardır: (1) CPU üzerinde çalışan işlemler, (2) CPU süresini bekleyen işlemler ve (3) kesintisiz uykudaki işlemler. Son kategori, CPU yükü oluşturmazken, sistem yük ortalamasını önemli ölçüde artırabilir.

Örneğin, çok meşgul veya kullanılamayan bir diskten okumaları bekleyen bir düzine işlem kesintisiz uykuda işlem olarak ortalama 12 yük oluşturur, ancak CPU'nuz bu arada tamamen boşta olabilir.

Yani, evet, yük ortalaması kolayca çift basamağa kadar çıkabilir. Bunun ne kadar kötü olduğu, donanımınıza bağlıdır. 16 çekirdeğiniz varsa, CPU süresini bekleyen 16 işlem olması o kadar da kötü değildir. Tek çekirdekli bir makinede, CPU süresini bekleyen 3 işlemin olması çok kötü olabilir.


Ben sadece CPU bağlı süreçler, bu nadir olduğunu kötü olduğunu düşünüyorum. Çoğu büyük süreç IO ve / veya RAM'e bağlıdır.
peterh - Monica'yı yeniden başlatın

3

10000 iş parçacığında sonsuz döngüler çalıştıran basit bir C işlemi yapın. Çok düşük bir öncelik verin (+20). Yükünüz 10000 olacak, sisteminiz hala kullanılabilir olacak. Sadece çok az RAM kullanır (en fazla megabayt).

Oldukça nadir bir yapılandırma olmasına rağmen, gerçek sistemlerde bunu bulamazsınız.

Sistem yükü, yalnızca bir cpu zaman dilimini bekleyen ortalama işlem sayısı anlamına gelir, daha az değil, daha fazla değil. İşte sistem yükünü yorumlamanın doğru yolu hakkında başka bir cevap .

Günlük deneyimde, 30'dan fazla yük çoğunlukla bazı problemler anlamına gelir.


2

Eski bir 450MHz cpu yiyen bir işlemi öldürdükten birkaç saniye sonra:

resim açıklamasını buraya girin


1

Hemen engellenen işlemleri tekrar tekrar başlattığınızda, yük başlamayı yönettiğiniz işlem sayısı kadar yüksek olacaktır. Sistemin değişmediği yeterli RAM'e sahip olduğunuzu varsayarsak, engelleme işlemlerinden dolayı yük gerçekten zararlı olmadığından sistem bile yanıt verir.


1

200'den fazla yükte çalışan bir sunucu gördüm.

Stres testi ve görmek istiyorum.

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.