Обнаружил на одном сервере тормоза, вычислил по логам апача что идет много обращений к одному файлу php, который как показал аналих кода нужен для кеширования.
Кеш туповатый, так как скадирует результаты выполнения пхп в файл и потом при обработке запроса от клиента, делает md5 от запроса и ищет файл с таким именем. Файликов насобиралось примерно 250 000 штук в одном каталоге, решил удалить их, но получил ошибку:
1 |
bash: /usr/bin/rm: Argument list too long |
решение было простым и очевидным, раз не хочет “влоб” то будем “по лбу” 🙂
Проблема в том что при формировании списка файлов для удаления список получается сильно большой и не может быть передан утилите rm
Для решения проблемы сделал цикл, который будет передавать утилите по одному имени файла.
1 |
for i in `ls -1`;do rm -f $i;done |
выполняется долго, но зато уверенно.