![]() |
Показаны 9 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Ограничение на выполнение Php-скрипта (http://netadmin.ws/forum/showthread.php?threadid=11198)
Ограничение на выполнение Php-скрипта
Интересует, есть ли какие легкие способы ограничить выполнение PHP-скрипта по частоте запроса?
То есть, имеется скрипт, который создает достаточно большую нагрузку в БД MySQL.
При стечении обстоятельств, когда большое количество посетителей начинают его использовать, начинаются жуткие "тормоза" сервера.
Есть идея, не знаю, насколько она хороша - ограничить использование этого скрипта по времени.
Например, установить каким либо образом, не более 10-ти раз в минуту.
Может есть какие другие соображения и идеи, по данной ситуации?
хм я бы предложил в скрипте записывать в файл последню дату выполнения
и делать проверку, если разница между текущей датой и датой последнего выполнения меньше 6 секунд
выдавать сообще Server Busy
Кстати, сперва, у меня была у меня идея, просто мерять загрузку проца, и соответственно ставить условие - давать допуск или нет.
Но не получилось "стандартными" средствами померять, скорее всего из-за SafeMode.
ну померять нагрузку можно, только ты тогда ограничишь доступ ко всему
что не есть хорошо
а так только отдельному скрипту
Дык я только в определенном скрипте хотел поставить условие ...
И какие способы есть для определения текущей нагрузки сервера Apache?
Я пытался выяснить так:
<?php
$loadavg_array = explode(" ", exec("cat /proc/loadavg"));
$loadavg = $loadavg_array[2];
print("Load: " . $loadavg . "%");
?>
впринципе можно и так, правда тогда ты будешь держать сервер в определенной нагрузке постоянно
а проверяй нагрузку простым uptime чере exec или system
Так у меня не получилось.
Скорее всего нет доступа к cat/proc/loadavg
хм или модуль su_exec врублен
попробуй exec("uptime")
zeev спасибо, конечно попробую, но пока подумаю над другими вариантами. Может кто-то, еще что-то подскажет ...
| Формат времени GMT. Текущее время 05:33. | Показаны 9 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.