Каков наилучший способ измерения «свободного» процессорного времени в системе на базе Linux - PullRequest
4 голосов
/ 25 сентября 2008

Для некоторых клиентов, для которых мы разрабатываем программное обеспечение, мы обязаны «гарантировать» определенное количество резервных ресурсов (память, дисковое пространство, процессор). Память и дисковое пространство просты, но процессор немного сложнее.

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

Если наши обычные приложения способны работать с приемлемым уровнем производительности и могут пройти все свои функциональные тесты, в то время как процесс свободного времени также выполняется, то мы «предполагаем», что выполнили наше обязательство по экономии процессорного времени .

Я уверен, что есть и другие методы для того же, и хотел бы узнать о них.

Ответы [ 4 ]

2 голосов
/ 25 сентября 2008

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

Самый неоспоримый подход - использовать слабое оборудование для тестирования. Если процессор в вашей настройке позволяет вам, вы можете разогнать его онлайн. Ядро Linux предоставляет вам простой интерфейс для этого, см. /sys/devices/system/cpu/cpu0/cpufreq/. Для этого есть также множество приложений с графическим интерфейсом.

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

Я думаю, вы поняли идею. Если он работает на частоте 1600 МГц вместо 2400 МГц, вы можете гарантировать 33% свободного времени процессора.

2 голосов
/ 25 сентября 2008

Так что это может быть не совсем тот ответ, который вы ищете, но если все, что вы хотите сделать, это убедиться, что ваше приложение не превышает определенные ограничения на потребление ресурсов, и вы работаете в Linux, вы можете настроить / etc /security/limits.con (может быть другим файлом в вашем дистрибутиве по вашему выбору), чтобы установить ограничения для конкретного пользователя и запускать процесс только под этим пользователем. Это, конечно, предполагает, что у вас есть этот уровень контроля над производственной средой вашего клиента.

1 голос
/ 25 сентября 2008

SAR - это стандартный * nix-процесс, который собирает информацию об оперативном использовании системных ресурсов. Он также имеет инструмент командной строки, который позволяет создавать различные отчеты, и данные обычно сохраняются в базе данных.

0 голосов
/ 25 сентября 2008

С многоядерной / процессорной системой вы можете использовать Affinity в ваших интересах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...