По умолчанию настройки кеширования такие:
CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=2 CONFIG_TARGET_SQUASHFS_BLOCK_SIZE=1024
Те кешируется 2 фрагмента по 1024кб.
Учитывая что флешка как минимум 8мб, и заполнена обычно минимум на 5мб вероятность того что 3 и более часто используемых фрагмента окажутся за пределами закешированных 2мб очень велика.
Кроме того, в случае промаха потребуется читать довольно большой блок.
Оптимальный на мой взгляд вариант для роутера с 32мб ОЗУ и 8мб флеша выглядит так:
CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=8 CONFIG_TARGET_SQUASHFS_BLOCK_SIZE=64
8 блоков по 64кб займут 512кб оперативной памяти.
В случае промаха мимо кеша прочитать 64кб займёт мало времени.
Данная оптимизация отлично себя показала на DIR-506L: WebUI стал заметно отзывчивее.
Для роутеров у которых больше памяти я бы увеличивал CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE, но не более чем до 64 (что даст 4мб кеша), тк это более половины размера самой прошивки, которая включает в себя ещё ядро (которое кешировать не нужно, оно и так в памяти).