Назад | Перейти на главную страницу

Выделите больше процессора для apache и модулей

В настоящее время я пытаюсь обработать кучу данных с помощью apache и php,
Я предполагаю, что это займет несколько часов, и я бы хотел сократить это время

В моем webmin я вижу следующую информацию

CPU usage   25% user, 0% kernel, 19% IO, 55% idle

Есть ли способ временно выделить больше ресурсов процессора для процесса? (даже если это означает изменение конфигураций и двойной перезапуск apache)

это в основном много mysql выбирает / вставляет / обновляет и регулярное выражение

Процессор есть Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, 4 cores

Спасибо за любые советы о том, как улучшить скорость

редактировать Список использования ЦП показывает это

ID      Owner       CPU     Command   
26841   mysql       38.6 %  /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file ...
5627    www-data    0.3 %   /usr/sbin/apache2 -k start

MySQL версии 5.0 уже является многопоточным и оптимизирован для работы в многоядерных системах. Ваша дисковая подсистема работает нормально? Возможно, диск представляет собой узкое место.

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

@edit: Или вы можете разделить данные на несколько блоков, если это возможно, и обработать их, запустив несколько разных сценариев PHP.

Учитывая, что у вас четырехъядерный ЦП и вы используете ровно четверть его, я был бы склонен сказать, что вы выполняете всю обработку данных в одном однопоточном задании. Это будет использовать только одно ядро ​​процессора. Перепишите свой код для параллельного выполнения нескольких задач (либо через потоки, либо через несколько независимых процессов), и он будет правильно использовать все ядра вашего процессора. Это нетривиальная операция.

Обратите внимание, что вопросы относительно распараллеливания вашего кода следует направлять в Stack Overflow.