У меня есть VPS с не очень большой памятью (256 Мб), которую я пытаюсь использовать для разработки Common Lisp с SBCL + Hunchentoot для написания простых веб-приложений. Похоже, что большой объем памяти используется, не делая ничего особо сложного, и через некоторое время на страницах обслуживания у него заканчивается память, и либо он сходит с ума, используя все свопы, либо (если нет свопа) просто умирает.
Мне нужна помощь:
- Узнайте, что использует вся память (если это библиотеки или я, особенно)
- Ограничьте объем памяти, который SBCL разрешен для использования, чтобы избежать массового количества подкачки
- Обрабатывайте вещи чисто, когда память заканчивается, а не сбой (поскольку это веб-приложение, которое я хочу, чтобы оно продолжалось и пыталось очистить).
Я предполагаю, что первые два достаточно просты, но третий даже возможен? Как люди справляются с проблемами памяти или ограничения памяти в Lisp?
(Кроме того, я отмечаю, что 64-разрядный SBCL, по-видимому, использует буквально вдвое больший объем памяти, чем 32-разрядный. Является ли это ожидаемым? Я могу запустить 32-разрядную версию, если она сэкономит много памяти)