Derlenmiş ve ikili linux dağıtımları / paketleri arasındaki performans farkı


14

İnternette çok şey araştırıyordum ve kesin bir cevap bulamadım.

Gentoo (veya FreeBSD) gibi ikili dosyalar ile değil, yalnızca paketler (bağlantı noktaları) için kaynak kodlu dağıtımlar vardır.

Dağıtımların çoğunda ikili paketler (debian, vb.) Kullanılır.

İlk soru: Derlenmiş paketten ne kadar hız artışı bekleyebilirim? Apache veya mysql gibi gerçek dünya paketlerinden ne kadar hız artışı alabilirim? saniye başına sorgular?

İkinci soru: İkili paket, ilk AMD 64bit CPU'dan sonra sunulan CPU talimatlarını kullanmadığı anlamına mı geliyor? 32bit paketleri ile paketin 386'da çalışacağı ve temelde modern CPU talimatlarının çoğunu kullanmadığı anlamına mı geliyor?

İlave bilgi:

  • Masaüstü bilgisayarlardan değil, sunucu ortamından bahsediyorum.
  • Derleme zamanı umrumda değil
  • Daha fazla sunucum var, bu yüzden% 15'ten fazla hız artışı kaynak kodu paketlerini kullanmaya değer
  • Lütfen flamewar yok.

1
Yanlış bir varsayımı düzeltmek için: FreeBSD, hem bir bağlantı noktası ağacı (kaynak) hem de ikili paketlerle birlikte gelir. Bkz man (1) pkg_addve ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/.
Hennes

Yanıtlar:


7

Performans farkı hemen hemen her durumda minimum olacaktır ve buna değmeyecektir. Kaynak dağılımlarını kullanmak için iyi nedenler (geno'nun bağlayıcı sisteminin izin verdiği gibi kendi ikili paketlerinizi yuvarlarken) şunları içerir:

  • Kendi özel yamalarınızı dağıtma
  • Çekirdeğinizi kolayca özelleştirme
  • Kendi güncellemelerinizi paketleme

Bunlardan herhangi birini yapmıyorsanız, kaynak dağıtımına ihtiyacınız yoktur. Kişisel kullanım için çok uygundurlar çünkü ikili uyumluluk hakkında çok fazla endişelenmeden işleri kademeli olarak yükseltmenize izin verirler, bu da bir kurumsal ortamda sık sık gördüğüm bir endişe değildir.

Kendi RPM paketlerinizi veya herhangi bir şeyi yaparak bunları ikili bir dağıtımla da yapabileceğinizi belirtmek gerekir. Yönetim yükü benzerdir.

Temelde kaynaktan derleyerek% 15 hız artışı görmeyeceksiniz. Herhangi bir makul durumda% 5 kadar bile tahmin etmek istiyorum. Kaynaktan derlemek size birkaç şey kazandırır:

  • Tercih ettiğiniz derleyici sürümünü kullanabilirsiniz
  • Derleyiciyi AESNI ve AVX gibi ikili dağıtım paketlerinde kullanılmayan ISA uzantılarından talimatlar üretmeye yönlendirebilirsiniz

Bununla birlikte, derleyici çok nadiren bunları zaten üretir ve uygulamanın performansı bir bütün olarak alındığında bunları kullanmaktan genel olarak çok küçüktür. RAM erişimi (ve gecikme süresi) ve disk ve aygıt gecikmesi gibi şeyler çok daha büyük faktörlerdir ve gerçekten buradan başlamalısınız.

Uygulamalar olabilir sadece görece yeni Intel Core i7 veya i5 üzerinde çalışacak bir özel derleme yararlanacak vektör matematik ve AES şifreleme ve şifre çözme bir sürü yapmak, ya da rasgele sayı çok ihtiyaç olanlar çok şey buna dahildir. Intel DRBG'yi kullanmak istiyorsanız, şu anda bunu da yapmanız gerekir.

Bunların hiçbiri sizin için geçerli değilse, orada herhangi bir debian veya red hat tabanlı dağıtımlardan oldukça memnun kalacaksınız ve çok daha az bakım yüküne sahip olacaksınız.


9

Kısa cevap ... Birçok büyük ölçekli ve hız / gecikmeye duyarlı uygulama standart Linux dağıtımlarında çalışır. Red Hat, CentOS, Debian, Ubuntu ... Hepsi vakaların çoğunda iyi çalışıyor. Kazançların çoğu uygulama ayarları, standart çekirdek ve işletim sistemi optimizasyonları ve altyapısından gelir.

Gentoo bazı optimizasyonlar sunabilir, ancak daha fazla yönetim sıkıntısı, azaltılmış zihniyet, azalan satıcı ve sürücü desteği, istikrar sorunları, alay ve potansiyel güvenlik endişelerine kapı açabilir .

Gentoo tabanlı sunucuları yüksek frekanslı bir finansal işlem ortamında yönettim. Gentoo altında küçük bir performans avantajı olmasına rağmen, hala Red Hat ve CentOS'a taşındım. Gentoo'nun kağıt üzerindeki avantajları, daha akıllı donanım seçimi, daha iyi sunucu üreticisi / donanım entegrasyonu desteği, Red Hat mühendisleri tarafından daha akıllı yamalar ve çekirdek baypas gibi daha ezoterik teknolojilerle kolayca aşıldı ...

Popüler uygulama yığınlarının (LAMP) verimliliğinin bir sorun olduğu bir noktadaysanız, lütfen sunucu donanımınızı (CPU tipi, RAM düzeni), ağ altyapısını, izleme sistemini optimize ettiğinizden ve daha önce sistem darboğazlarını belirleyebildiğinizden emin olun. bu yolda ilerliyor.

Şimdi bir performans sınırlaması mı uyguluyorsunuz ?


5

Verilen tüm noktalar elbette doğrudur. Sadece% 5 -% 15 performans artışının ulaşılamaz olduğu, özellikle GCC'nin modern sürümlerinde, CPU mimarisine ve hedef olarak kullanılan baz hattına ne kadar yakın olduğuna bağlı olarak biraz sorun çekmek istiyorum. ikili dağılımlar için. ISA uzantılarını kullanmanın yanı sıra GCCs -march = native, L1 ve L2 önbellek / satır boyutları için de optimize eder. Doğru şekilde hizalanmış kod (CPU'nuz için) özellikle -flto da kullanıldığında çok daha hızlı olabilir, böylece derleyici dikkate alması gereken her şeyi bilebilir. [maalesef şu anda LTO ile bazı paketler bozuldu]

Ek olarak, march = native ve LTO'ya ek olarak -Ofast ile seçilen paketleri derlemek önemli bir fark yaratabilir.

Gelecekte, GCCs Grafit altyapısı stabilize olursa, daha da fazla kazanç potansiyeline sahip olacaktır.


Bu cevabı destekleyen fıkra: Kahire ve Pixman ile Skylake -march=native(istemci) CPU üzerinde derlediğim bazı karşılaştırmalar ikili dağıtımdan% 5 ila 20 daha hızlıydı. (Bu paketler derleyicilerin otomatik vektörleştirmesi için nispeten kolaydır.) -fno-semantic-interpositionDenemek için başka bir iyi bayraktır -falign-functions.
ZachB

4

Sisteminizde ne istediğinize bağlıdır ve gerçekten burada üç düşünce okulu vardır (ve bu hem donanım hem de yazılım için geçerlidir)

SF en millet gitmek gibi Öncelikle, ana akım uzakta - bildiğiniz bir şey istiyorum edecektir istediğiniz işe destek ve istediğiniz anda . Bu durumda, redhat tabanlı sistemlerle devam etmek (RHEL size mükemmel destek sağlar ve centos, iyi test edilmiş RHEL dağılımının topluluk olarak yeniden yapılandırılmasıdır). Ancak en son ve en iyisini elde edemezsiniz. Çoğu durumda bu donanım için de geçerlidir.

İkincisi, ubuntu gibi bir şeyle devam eden orta yol olan 'yolun ortası' bakış açısıdır. Yeni paketler istiyorsunuz (tam bir sağlam sağlam kararlılık pahasına), bir montajcı ve güzel şeyler istiyorsunuz .

Bazı durumlarda insanlar sorun yaşar, ancak daha yeni paketleriniz vardır ve işler makul bir şekilde test edilir . Burada Ubuntu için çok fazla nefret olsa da, kurulum kolaylığı ve makul yeni paketler arasında iyi bir uzlaşma. Debian muhtemelen biraz daha muhafazakar bir seçimdir. Bu günlerde, Ubuntu'yu kutunun dışında düşük gecikme çekirdeği ile bile kurabilirsiniz. Ubuntu ve debian'ın benim için çalıştığını hissediyorum, ama ymmv. Bu seçenek için facebook ve google gibi birçok sunucuyu dağıtan birçok yer var.

Son olarak kaynak tabanlı dağıtımlar var. Çoğu durumda ilk kurulum arkada tam bir ağrıdır. Çekirdeğinizi kurarken bir hata mı yaptınız? Hata! Yeniden derlemek için birkaç saat harcayın. Bir yükleyici de almazsınız - n00bs için bu. Sık sık kanama kenarı uygulamaları ve gerektiğinde bunları derleme seçeneği (örneğin hız veya bellek kullanımı için optimizasyonları seçebilme) ve bir yuvarlanma serbest bırakma seçeneği elde edersiniz. Çok özel, ezoterik ihtiyaçlarınız varsa, gentoo harika. Birkaç düzine sistemi açmanız ve otomatikleştirmek istiyorsanız ... iyi şanslar. Kaynak tabanlı dağıtımlar da ölçeklendirilmez. Çok fazla esneklik elde edersiniz, * biraz ** ekstra hız, ancak paket tabanlı dağıtım IMO'su ile aynı seviyede sürdürülebilirlik elde edemezsiniz. Sen değil% 15 ekstra hız alacaktır ve muhtemelen donanımınız için derleme bayrağını ayarlamaya çalışırken zaman harcarsınız ve bir şey karıştırırsanız, tam olarak neyin başarısız olduğunu çözmek için zaman harcarsınız.

resim açıklamasını buraya girin

BSD'ler ayrı bir işletim sistemi ailesidir . Bazı halklar yemin ediyorlar (en az bir iletişim odası normal bir freebsd kullanıcısı) ve farklı BSD'lerin farklı odakları var - örneğin openbsd güvenlik takıntılı ve freebsd 'ana akım'. Bazı durumlarda, linux ile aynı tür donanım desteğine sahip olmayabilirler, ancak bu birkaç faktöre bağlıdır.

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.