Bir CPU'yu devre dışı bırakmak mümkün mü (çekirdek değil)?


10

Bir çekirdeği değil, bir CPU'yu devre dışı bırakmak mümkün mü? Performansın büyük bir fark yaratıp yaratmadığını doğrulamak için bir test yapmak istiyorum.

Ubuntu 10.10 kullanıyorum.

Yanıtlar:


10

Bunun yanı sıra BIOS grubunuzda bir seçenek var maxcpus.

Bu seçeneği, gruba önyükleme seçeneğinizi seçerken maxcpus=1parametrelere ekleyerek düzenleyebilirsiniz. Rastgele grub resmi:

resim açıklamasını buraya girin

'E'yi seçin ve seçenekler ekleyebileceğiniz bir komut satırına gidin.

Mevcut önyükleme seçeneğinizin bir kopyasını oluşturarak maxcpus=1ve önyükleme parametrelerine ekleyerek grub'ta kalıcı önyükleme seçeneği de oluşturabilirsiniz . Bu 'Ubuntu, çekirdek 2.5.12-9-386 (1 cpu)' olarak adlandırabilir ve resimde gösterildiği gibi diğer önyükleme seçeneklerinden birine sahip olabilirsiniz.

1 cpu üzerinde çalıştığınızı doğrulayarak şunları yapabilirsiniz:

cat /proc/cpuinfo | grep processor bu böyle bir şey göstermelidir:

işlemci: 0
işlemci: 1

Ve 1 CPU ile önyükleme yaptıktan sonra 2. satır kaybolmalıdır.


1
bu soru aynı zamanda pratik bir şaka yapar! : D
Alvar

Maxcpus = 0 değerini ayarlarsanız ne olur? : P
crazy2be

@Rinzwind Tam olarak söylediğini yaptım, ama sonuç garip görünüyor, selamlama yaparken parametrelere "maxcpus = 1" eklemeden önce 12 işlemci bilgisi aldım, ancak değişiklikten sonra sadece 1 işlemci bilgisi aldım, sadece bir çekirdek görünüyor 12 çekirdeğin tümü etkinleştirilir. Not: Bilgisayarımda altı çekirdekli iki CPU bulunur.
LeoYuan

@ crazy2be tahmin: 1. işlemci 0 denir, böylece bir tane kullanarak bitirmek? : D
Rinzwind

@ LeoYuan88 cat cat / proc / cpuinfo çıktısını düzenleyebilirsiniz | maxcpus = 1 ile önyükleme öncesi ve sonrası grep işlemci?
Rinzwind

7

CPU'ları /sys/devices/system/cpu/cpuN/online, örneğin CPU 1'i devre dışı bırakmak için aşağıdakileri kullanarak dinamik olarak devre dışı bırakabilirsiniz:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

ve yeniden etkinleştirmek için şunu kullanın:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

Bu bir CPU'yu değil, bir dersi devre dışı bırakıyor gibi görünüyor. Sistemimdeki her mantıksal çekirdek için bu dizinlerden birine sahibim.
sudo

1

CPU'yu her zaman soketinden çıkarabilirsiniz. Bu kaba kuvvettir, ancak istediğiniz testi almanız garantilidir ve çekirdek / BIOS / herhangi bir anahtarın gerçekten umduğunuzu yaptığını düşünmüyorsanız endişelenmenize gerek yoktur.

Şirketimin dünyanın çeşitli yerlerinde büyük sunucu çiftlikleri kurulumları var. Laboratuvarımızda bazen böyle bir test için CPU'ları yuvalardan çıkaracağız.

Bu testte çok işlemcili NUMA sistemleri ile yapabileceğiniz ilginç bir varyasyon var . Bu tür anakartlarda, bir fiziksel CPU tarafından kontrol edilen tüm bellek DIMM'lerini çıkarabilirsiniz. Sistem yine de iyi önyükleme yapacak ve daha sonra uygulamanız "yerel" veya "uzak" belleğin etkilerini ölçmenize izin verecek çeşitli çekirdeklere sabitlenmiş olarak testleri çalıştırabilirsiniz.


Maalesef, CPU'yu soketinden nasıl çıkaracağımı hala bilmiyorum, bana işi nasıl yapacağımı gösterebilir misin?
LeoYuan

0

Çok sayıda iş parçacıklı bir uygulamanın performansını, çekirdek sayısı ile birlikte görmek ister misiniz? Bu durumda, tasket yardımcı programını kullanabilirsiniz. Sanırım bir NUMA makineniz var. Numactl yardımcı programını kurabilir ve bunu kullanarak hangi CPU'nun hangi CPU'ya karşılık geldiğini bulabilirsiniz. Örneğin, makinenizin iki dört çekirdekli CPUS (yongaları) vardır. Görev seti yardımcı programını kullanarak bir CPU'nun çekirdeklerini set olarak yapabilir ve bunları uygulamanıza ayırabilirsiniz. Ardından uygulamanız yalnızca bir CPU / Çip (dört çekirdek) kullanır. Daha fazla bilgiye ihtiyacınız varsa lütfen bana bildirin.

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.