Участь у FaD з 05.2002 |
Ukraine | |
Додому Про Find-a-Drug FAQ Реєстрація Проекти Завантажити Форум Статистика Ресурси Рус. |
Запуск THINK під Linux на комп'ютері з обмеженою кількістю віртуальної пам'ятіЯк усім відомо, офіційний FAQ Find-a-Drug попереджує, що для запуска FaD необхідно хоча б 128 МБ пам'яті. Однак для Linux ця вимога є зовсім некоректною. Мені довелося зтикнутися з цим, коли я намагався запустити THINK на комп'ютері з Linux, на якому було саме встановлено 128 MB фізичної пам'яті і додатково 64 MB свапу. На жаль, THINK запускатися не хотів. Пошук на офіційному форумі дійсно виявив, що така проблема існує. Під Linux THINK чомусь було спроектовано так, що він бажає побачити при завантаженні близько 208 MB вільної віртуальної пам'яті. Більше того, як каже Кейт, THINK під Linux також резервує місце в свапі, хоча й не використовує його. Отже, запустити THINK під Linux на комп'ютері з відсутнім свапом також не вдасться, хоча це припущення ще потребує перевірки. Виходів з ситуації, коли на комп'ютері недостатньо віртуальної пам'яті, два.
1-й і найбільш очевидний спосіб. Збільшити кількість свапу, якщо, звичайно, є така можливість. 200 MB повинно бути достатньо для комп'ютера з 64 MB фізичної пам'яті, якщо крім ядра і THINK більше ніяких сервісів на машині немає. 2-й спосіб. Це оверкомміт пам'яті. В такому режимі ядро буде вважати, що пам'яті завжди достатньо, до тих пір, доки пам'ять дійсно не завершиться, таким чином дозволяючи запустити програму навіть, коли їй формально не вистачає пам'яті. Існує велика кількість програм, які резервують великі об'єми пам'яті "про всяк випадок", але більшу її частину не використовують. THINK - одна з таких програм і реально він використовує близько 10 МБ. Для того, щоб ввімкнути оверкомміт пам'яті, зробіть наступне від супер-користувача: echo 1 > /proc/sys/vm/overcommit_memoryПісля цього THINK запуститься. Для автоматичного вмикання оверкомміта додайте рядок: vm.overcommit_memory = 1в файл /etc/sysctl.conf, або наведену трохи раніше команду де-небудь в стартові скрипти, наприклад, rc.local. |