Я прочитал, все что советовали до меня. Все верно говорят. Но в данном случае я бы исключил php из цепочки вот каким способом (например):
1. Вы создаете символьные ссылки на все нужные Вам файлы в каталоге (командой ln -s), называя ссылки их ID (как описано в вашем же файле img-links.txt). Нужно только в фоне (руками или по крону) поддерживать актуальность соответствия ссылок нужным файлам (чтобы ссылки соответствовали img-links.txt). Тогда Вам не нужно будет для каждого запроса подгружать php, а можно будет просто отдавать файлы средствами httpd (apache или nginx — не важно).
2. Если ID не имеют расширений, то придется прописывать тип файлов в таблице соответствий (что тоже не сложно).
3. Поддерживаю совет по настройке expire для статики хотя бы на несколько дней (лучше — недель).
В итоге, запросы будут обрабатываться быстрее и, возможно, не будут попадать в дисковый своп и проблема решится. (точно нельзя сказать, не зная параметров хостинга и вашего трафика)