Что, вероятно, происходит? что ЦП переходит в более агрессивный режим энергосбережения. Это заставляет внутренние импульсные регуляторы напряжения переходить в режим пропуска импульсов, понижая частоту переключения до слышимого диапазона. Шум исходит от катушек индуктивности и конденсаторов, оба являются слегка микрофонными (что также работает в обратном направлении; звук излучается)
. Это паршивая конструкция, но вы застряли с ней.
«Лучший» способ решить эту проблему - войти в BIOS и настроить процессор на менее агрессивное регулирование. Это предотвратит запуск всех причудливых режимов энергосбережения, поэтому вам не придется возиться с этими задачами.
Другой способ - запустить полезную задачу, например SETI @ Home или что-то еще, что вы, возможно, захотите сделать. Я думаю, что SETI @ Home может установить процент ограничения ЦП, но если нет, вы можете использовать команду cpulimit
linux.
Наименее интересный способ - просто сжечь циклы с помощью одной из утилит стресс-тестирования. techraf уже предлагал stress-ng, и есть еще несколько подобных утилит.
Если вы не можете найти утилиту с достаточно мелкозернистой дроссельной заслонкой, я приготовил для вас эту однострочную версию perl. Дросселирование можно настроить. Я использую perl, потому что это то, что я знаю. Вставьте свой любимый язык программирования.
perl -MTime :: HiRes = sleep -e 'sleep 0,0001 while 1'
Изменение части 0,0001 заставит использовать больше или меньше CPU.
В Debian или Ubuntu установите stress-ng с помощью apt-get install stress-ng
.
Затем запустите:
stress-ng -c 1 -l 50
воспроизведение с параметрами -c
(количество процессоров) и -l
(процентная загрузка).
Для Fedora / RedHat / CentOS кажется, что вам нужно скомпилировать его (исходный репозиторий здесь ) с помощью следующей процедуры:
wget http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.05.25.tar.gz
tar zxvf stress-ng-0.05.25.tar.gz
cd stress-ng-0.05.25/
make
./stress-ng -c 2 -l 50