Во-первых, как уже неоднократно говорилось, нагрузку могут создавать соседи по ноде и она у вас видна в LA (как правило, это жёсткий диск).
Во-вторых, в вашем случае, PHP-скрипты не освобождать память (и другие ресурсы) не могут, т.к. за них это делается автоматически после их завершения.
В-третьих, память медленно сжирается всегда. *nix системы используют память всегда по-максимуму. Паниковать надо, если начинает использоваться своп (хотя, как обстоят с ним дела на VPS не знаю).
Этот кусок:
$emails = ($query); $i=0; foreach ($emails as $email) {
замените на
while ($r=mysql_fetch_assoc($query)) { $email=$r['mail'];
По поводу мыльных серверов.
Если на том сервере, где запускается скрипт, поднят почтовый сервер (и нормально функционирует), то письма должны нормально отправляться и доставляться с помощью функции mail().
Если почтовый сервер не поднят, соответственно, нужно указать в настройках php данные внешнего почтового сервера и, опять же, с помощью функции mail() всё должно отлично отправляться и доставляться.
ТС, вы результат mysql-евский разбираете с помощью mysql_fetch_assoc или типа того? или не разбираете? :)
При такой посещаемости вообще не вижу смысла изголяться со специализированными библиотеками.
Тем, над чем вы пытаетесь заморочиться, нужно заморачиваться, когда как минимум каждую секунду будет по 100-200 новых событий. В вашем случае за глаза хватит php+mysql+cron
<style>
img.hl { border: none; }
img.hl:hover { border: #f00 1px solid; }
</style>
…
<img src="image.jpg" class="hl">
Тогда напишите своего "демона" на перле, который будет постоянно висеть, и раз в 5 секунд проверять, не появилось ли чего в очереди в БД.
Это ж несколько строк всего.
Byte Order Mark
А почему вы решили, что пользовательскому скрипту будет позволено лезть в системные переменные и что-то оттуда выколупывать? :)
Универсального решения сделать не получится :) Получится только понять общее направление, в котором нужно двигаться, а допиливать под каждый конкретный случай придётся по-любому.
Задержку между "задачами" просто делайте в php-скрипте (sleep / usleep), чтобы не слишком яростно грузить API-шку.