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.
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:
Bunun yanı sıra BIOS grubunuzda bir seçenek var maxcpus
.
Bu seçeneği, gruba önyükleme seçeneğinizi seçerken maxcpus=1
parametrelere ekleyerek düzenleyebilirsiniz. Rastgele grub resmi:
'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=1
ve ö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.
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
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.
Ç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.