[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: apache и оперативка
hurt3
Не нашел места лучше, как вынести тему сюда.

Известно, что апач создает очередь обращений к серверу
для этого существует fork(), выделяется нужно количество памяти на дочерние процессы, существуют директивы ограничивающие лимиты процессов и памяти.

Апач по умолчанию может запустить до 1000 дочерних процессов из очереди обращений.
Т.к. скрипты обрабатываются через php, в настройках php мы видим что на 1 скрипт выделяется минимум 128 мб оперативки, тогда получается, что при 1000 одновременных запросов мы получаем расход 128 000 мб?

И так господа вопросы:
1) Полученная цифра 128 000 это максимальная, нагрузка которая установлена по умолчанию?
2) Когда стартует скрипт, память 128 под него бронируется сразу, или занимается по мере необходимости?
3) что будет если на сервере с 1 г опер. пам. произойдет активность в 1000 одновременных подключений скрипта, которому требуется 128 мб памяти, упадет или будет тормозить??

4) правильно ли я понимаю ситуацию, если скрипты написаны с минимальным потреблением памяти, сервер может справится с очень большой нагрузкой, ну скажем 1000 000 000 запросов в 15 секунд?

5) если не задействуются сторонние библиотеки или тяжелые модули, реализацию программы на php можно выполнить с учетом экономии оперативки и она спокойно будет справляться с высокой нагрузкой даже на слабом серваке?








hurt3
странно не могу понять кот врет

отработал скрипт memory_get_peak_usage() показывает 2097152 байта ~ 2 мб

а решение xprof отразил пиковую нагрузку 29,920 bytes

hurt3
вообщем парни пытаюсь поколдовать с php.ini

вот аткие данные выдала функция phpini после внесения настроек

max_input_time 0,0000001
memory_limit 0.0128M



388208 memory_get_usage
495008 memory_get_peak_usage

в мемори лимт проовал ставить и точку и запятую и М и Б хоть вот так сделай
0,0000000001 скриту походу в обще пофиг

предвидя вопрос -да сервер я перезагружал

что это как установить лимт на память и понять ее пиковую нагрузку релаьно выполенную?
hurt3
кажется начинаю вкуривать

и так скрипт генерит массив
с лимит мемори выставленным 0.0128
справился

увеличими количество элементов массива

с лимит мемори 0.0128 произошел вывод белого экрана -вывод памяти не хватило,но ошибку не вывел

с увеличением количеств памяти в настройках до 128М выдал ошибку
Allowed memory size of 134217728
увеличим оперативку на 20 М
выдает ошибку Allowed memory size of 165675008 bytes
и вот здесь не совсем понятно где он добирает лишние 6 м

далее уменьшаем количетство памяти в настройках стабильно выдается ошибка о нехватке памяти
но при выставлении 1 м -белый экран
либо отработавший скрипт, при уменьшении количества элементов массива...

вывод могу сделать 1 для обработки ошибки не хватило памяти)

значит для корректной работы php должен существовать некий лимит оперативки в настройках....

и это означает еще кое что

расход памяти на скрипты можно рассчитать математически, но из-за внутренней работы апача и php полученные затраты на память будут всегда разница

memory_get_peak_usage показывает в холостом режиме 2097152 байт
это означает что при холостом максимальной нагрузке на сервак необходимо брать сервер с + ((2.1 м оперативки + максимальное памяти съеденное скриптом разработчика) *1000) верно?
но что то подсказывет мне что из-за утечек памяти, моих кривых рук, и не знания эту цифру можно умножить в двое про запас.

Конечно не понятно чем должен заниматься сервер в 1000 запросов в микросенкунду...
подскажите я хотя бы правильно двигаюсь в оптимизации затрат памяти приложением?

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


hurt3
тест 2
надеюсь кому то это все пригодиться

3 скрипта , первый скрипт 1000 раз запускает второй, второй 1000 раз - третьи, третьи собирает массив создавая тем самым нагрузку.

первые два запускают без вывод содержимого в буфер, таким образом за 1 микр удается вызвать 100 скриптов а

В общем все тормозит, в htop память и процессор зашкаливают, как и должно быть

Скрипт 3 вызванный отдельной страницей в браузере тормозит и переодически выплевывает инфу о не хватке пмяти но не классической нехватке в 134 мб а 10, 4, 12 вообщем разные числа
вывод при большой загруженности машины, памяти может не хватить даже простым скриптам
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.