Я использую дистрибутив Debian 8 Linux на двух разных конфигурациях ПК. Первая конфигурация, которую вы заметите ниже, это та, которую я использую очень долго. Эта конфигурация использует 100% процессор в пиковое время, поэтому я решил купить новый ПК с гораздо более высокими характеристиками. Я использую старое 32-битное приложение для Linux, которое было запущено более 10 лет назад и называется samp03svr. Это однопоточное приложение, поэтому я искал только высокочастотный процессор. Процессоры Xeon мне не помогут. Приложению требуется более высокая частота процессора, чем количество ядер.

Вот мои конфигурации ПК:

  1. Материнская плата более старой конфигурации: ASUS P8H61-M Процессор: Intel i5-3570 @ 3,4 ГГц ОЗУ: 2x8 ГБ Kingston 1333 МГц

  2. Материнская плата более новой конфигурации: B250M-D3H-CF Процессор: i7-7700K Процессор @ 4.20 ГГц ОЗУ: 2x8 ГБ Kingston 2133 МГц

От более новой конфигурации я бы ожидал гораздо меньшего использования процессора, но, как ни удивительно, этого не происходит. На самом деле загрузка процессора примерно в 5 раз выше, чем в старой конфигурации. Тесты, которые я сделал, были выполнены для той же нагрузки, с той же операционной системой и теми же драйверами. Я даже пытался отключить многопоточность, но разницы в использовании процессора нет.

Что бы вы порекомендовали сделать?

1 ответ1

0

Если ваша цель состоит в том, чтобы удовлетворить спрос во время пиковых периодов, о которых вы упомянули, я бы по возможности рассмотрел запуск серверной программы на обеих имеющихся у вас машинах и размещение их за балансировщиком нагрузки, например haproxy.

С другой стороны, если ваша цель - уменьшить потребление ресурсов процессора серверной программой, у вас есть несколько вариантов.

Вы можете понизить приоритет вашего процесса, чтобы ядро планировало время своего процессора таким образом, чтобы оно не доминировало над вашим процессором. Это можно сделать с помощью команд nice или renice . В Debian значения приоритетов варьируются от -20 до +19, а значение по умолчанию (запуск процесса без использования nice) равно 0. Чем выше значение, тем ниже приоритет. Это становится легко запомнить, если вы думаете о нем как о «чем лучше процесс, тем больше он готов отдать свое процессорное время другим процессам».

Запустите вашу программу следующим образом, используя разные значения:

nice -n +12 /path/to/your/program

Если ваша программа уже запущена, вы можете использовать renice с ее pid:

#first find the pid
pgrep your_program_name
#or
ps aux | grep your_program_name

#now use the pid here
renice -n +12 pid_of_your_program

#or if you are comfortable combining these
renice -n +12 $(pgrep your_program_name)

Другой вариант - использовать инструмент cpulimit . Он позволяет вам запускать программу и определять максимальный процент загрузки процессора, который вы хотите разрешить.

#install the package
apt-get install cpulimit

#run your program, for example limiting to 25%
cpulimit -l 25 /path/to/your/program

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .