პატარა სერვერებს მეხსიერება ყველაზე ცუდ მომენტებში ეწურებათ: apt upgrade, Docker build, ღამის სარეზერვო ასლი. swap-ის გარეშე ბირთვის OOM killer პროცესს ირჩევს და კლავს, ხშირად თქვენს ბაზას. swap ფაილი იაფი უსაფრთხოების ღვედია, რომელიც ამ ნახტომებს წასასვლელ ადგილს აძლევს. ამას ხუთი ბრძანება სჭირდება.
1. შეამოწმეთ, რა გაქვთ
swapon --show
free -h
თუ swapon --show არაფერს აჩვენებს, swap ჯერ არ არის.
2. შექმენით swap ფაილი
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
chmod 600 მნიშვნელოვანია: swap შეიძლება შეიცავდეს მეხსიერებაში არსებული ნებისმიერი რამის ფრაგმენტებს, საიდუმლოებების ჩათვლით, ამიტომ მხოლოდ root-ს უნდა შეეძლოს მისი წაკითხვა. თუ fallocate შეცდომით «operation not supported» ჩავარდება, ნაცვლად გამოიყენეთ dd:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. გახადეთ მუდმივი
ამ ნაბიჯის გარეშე swap გადატვირთვის შემდეგ ქრება:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. დაარეგულირეთ swappiness
უთხარით ბირთვს, უპირატესობა RAM-ს მიანიჭოს და swap ძირითადად დატვირთვისას გამოიყენოს:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. გადაამოწმეთ
swapon --show
free -h
უნდა დაინახოთ 2 GB swap მოწყობილობა, cat /proc/sys/vm/swappiness კი 10-ს უნდა აჩვენებდეს.
რა ზომის უნდა იყოს?
- 1–2 GB RAM-ის სერვერი: 1–2 GB swap.
- 4 GB და მეტი: 1–2 GB დამცავ ბადედ კვლავ საკმარისია.
ნუ გახდით swap-ის ზომას «RAM-ის ორჯერ მეტს». სერვერზე swap მოკლე ნახტომების შესაწოვად არსებობს და არა იმ დატვირთვების გასაშვებად, რომლებიც მეხსიერებაში არ ეტევა.
როცა swap პასუხი არ არის
რამდენიმე დღე დააკვირდით:
vmstat 5
სვეტები si და so აჩვენებს swap-ში შესულ და გამოსულ გვერდებს წამში. დროდადრო აქტივობა ნორმალურია. მუდმივი არანულოვანი მნიშვნელობები ნიშნავს, რომ სერვერს მეხსიერება აკლია და ყველაფერი დისკს ელოდება. ამ ეტაპზე გამოსავალი მეტი RAM-ია; იხილეთ რამდენი RAM სჭირდება VPS-ს. EQVPS-ზე შეგიძლიათ გადახვიდეთ დიდ ტარიფზე ხელახალი ინსტალაციის გარეშე; მონაცემები ადგილზე რჩება.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.