У мене є сервіс .NET (Core 2.0), який я перемістив з Windows до екземплярів Linux на AWS. Екземпляри мікро-з 1 Гб оперативної пам’яті.
Я додав 1Gb простору swap до екземпляра Linux, а також встановив swappiness = 100, але сервер зависає, коли фізична пам'ять заповнена. Сам процес сповільнюється майже до зупинки і навіть натискання клавіші ENTER на bash займає іноді 10 секунд, щоб з'явився новий рядок.
Бігаючи, top
я бачу вільну пам'ять зазвичай 10, 20 Мб. Процес, що використовує 800 Мб + оперативної пам’яті, і своп завжди майже порожній, з використанням макс. 20 Мб. Навіть заїжджаючи туди на годину, це не змінило більше.
Я можу бачити, що кредити на дисках і центральних процесорах на AWS майже на 100%, тому це не обмежує використання ресурсів. Також є близько сотні таких примірників, і я кілька разів їх замінював, поведінка завжди однакова, тому це не виглядає як погана проблема екземпляра .
Мене хвилює те, що цього не сталося у Windows, а екземпляри Linux використовували приблизно на 200 Мб менше пам’яті для базової системи.
Чи є якісь налаштування, які мені потрібно налаштувати, крім заміщення, щоб змусити Linux переміщати більше пам'яті?
Редагувати: Swap налаштований правильно через cloud-init, і він переживає перезавантаження:
Налаштування:
fallocate -l 1024M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sysctl vm.swappiness=100
free -m
після завантаження:
total used free shared buffers cached
Mem: 993 232 760 0 7 152
-/+ buffers/cache: 72 921
Swap: 1023 0 1023
swappiness
значення занадто високе, це означає, що програми, які часто отримують доступ, можуть замінятися і виключати інші програми. Спробуйте навпаки крайній край і встановіть swappiness=10
( sudo sysctl vm.swappiness=10
на тимчасову зміну), щоб побачити ефект: це повинно зупинити часто називаються процеси від заміни.
free -h
щоб перевірити кількість налаштованих свопів; або може бути, що і ваша пам'ять, і swap повні (1 Гб є досить малим для файлу swap, особливо якщо у вас обмежена пам'ять). Це посилання розповідає, як налаштувати його для Ubuntu, але я думаю, що це достатньо основна функція, що вона буде схожа на інші аромати Linux.