Я получаю объекты изображения с удаленного сервера, а затем пытаюсь загрузить их в Rackspace Cloud Files, используя их API. Удовлетворение а) как я могу сделать этот процесс более эффективным, и б) предполагая, что мне нужно будет приобрести больше памяти, для чего может понадобиться разумное количество оперативной памяти (текущий сервер разработки - всего 512 МБ).
Выполняя script, я:
Это выполняется относительно быстро на небольшом наборе идентификаторов, однако 100 (поэтому 700-1k изображений) могут занимать 5-10 минут, и что-то большее, чем кажется, работает бесконечно. Попробовали следующее, с небольшим успехом:
PHP memory_limit установлен в 128 Мбайт, и при выполнении команды "tops" я вижу, что пользовательские "www-data" потребляют 16% ресурсов памяти. Однако это больше не отображается в списке пользователей, но я продолжаю видеть это:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2400 mysql 20 0 161m 8220 2808 S 0 1.6 11:12.69 mysqld
... но TIME + никогда не изменяется. Я вижу, что есть еще одна задача, но эти значения никогда не меняются:
Mem: 508272k total, 250616k used, 257656k free, 4340k buffers
Извините за длительный пост - не совсем уверен, что (если это возможно) полезно. Это не моя область знаний, поэтому немного хвататься за соломинку. Заранее спасибо за вашу помощь.
MySQL - демон - он будет продолжать работать и сидеть в памяти, пока он не умрет, или вы его не убьете. TIME + - это время, которое он использовал с момента последнего перезапуска. Если он простаивает (% CPU = 0), тогда TIME + не будет увеличиваться, так как время процессора не потребляется.
Вы проверили, запущен ли API-интерфейс cloudfiles некорректными дескрипторами? Вы можете отключить объект изображения, который вы извлекли из своей службы (service- > you), но Cloudfiles API все равно должен отправить это изображение обратно из двери (you- > Rackspace), и это может быть утечка где-то.