Как дать больше памяти Apache

Я использую PHP с Apache 2.4 на Centos 7 для запуска очень ресурсоемкой вероятностной модели. Потребовалось 8 дней, чтобы запустить его на моем домашнем компьютере, поэтому я решил перенести его в облачный сервис. Я настроил его, и теперь это занимает всего 5 часов. Большой!

НО есть проблема, при обработке алгоритма я проверил команду «free» и «top» в облаке, и она сообщила, что использует около 24% моего процессора и 10% доступной памяти! Я плачу около $ 1,50 в час серверу в Linode с 96 ГБ и 20 ядрами ЦП, поэтому лучше использовать 100% доступного ЦП.

Я знаю, что многое зависит от алгоритма, но проверьте этот код ниже. Это очень тяжелый алгоритм, интенсивно использующий CPU, и он должен использовать 100% CPU, но нет, он использует только 24% (согласно «top»).

<?php

set_time_limit(0);
ini_set("memory_limit","-1");

for ($i=0;$i<10000;$i++) {

for ($ii=0;$ii<10000;$ii++) {

for ($iii=0;$iii<10000;$iii++) {

for ($iiii=0;$iiii<10000;$iiii++) {



}

}

}

}

?>

Так, что происходит? Как я могу заставить мой Apache использовать больше процессора и памяти?

0

Решение

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

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

Я предлагаю вам переписать ваше программное обеспечение как многопоточное приложение, предпочтительно с использованием языка, подобного C или C ++.

0

Другие решения

Других решений пока нет …