ნებისმიერი სხვა ოპერაციული სისტემის მსგავსად, GNU/Linux– მა მოახდინა მეხსიერების მენეჯმენტი ეფექტურად და იმაზე მეტადაც კი. მაგრამ თუ რაიმე პროცესი მოგჭამს მეხსიერებას და გსურს მისი გასუფთავება, Linux უზრუნველყოფს გზას, რომ გაწმინდო ან გაწმინდო ვერძი ქეში.
ყველა Linux სისტემას აქვს სამი ვარიანტი, რომ გაასუფთაოს ქეში პროცესების და სერვისების შეწყვეტის გარეშე.
1. მხოლოდ PageCache- ის გასუფთავება.
# სინქრონიზაცია; ექო 1>/proc/sys/vm/drop_caches.
2. გაასუფთავეთ კბილები და ინოდები.
# სინქრონიზაცია; echo 2>/proc/sys/vm/drop_caches.
3. გაასუფთავეთ PageCache, სტომატოლოგია და ინოდები.
# სინქრონიზაცია; echo 3>/proc/sys/vm/drop_caches
ზემოთ ბრძანების ახსნა.
სინქრონიზაცია გაანადგურებს ფაილური სისტემის ბუფერს. ბრძანება გამოყოფილია “;”
თანმიმდევრულად გაშვება. გარსი დაელოდება თითოეული ბრძანების დასრულებას თანმიმდევრობით შემდეგი ბრძანების შესრულებამდე. როგორც ბირთვის დოკუმენტაციაშია ნათქვამი, წერილობით drop_cache გაასუფთავებს ქეშს ნებისმიერი პროგრამის/სერვისის მკვლელობის გარეშე, ბრძანება ექო აკეთებს საქმეს წერს ფაილს.
თუ თქვენ გჭირდებათ დისკის ქეში გაასუფთაოთ, პირველი ბრძანება ყველაზე უსაფრთხოა საწარმოსა და წარმოებაში "... ექო 1> ..."
გაასუფთავებს, PageCache მხოლოდ არ არის რეკომენდებული მესამე ვარიანტის გამოყენება ზემოთ "... ექო 3>"
წარმოებაში სანამ არ გაიგებ რას აკეთებ, როგორც გაირკვევა PageCache, სტომატოლოგია და ინოდები.
როდესაც თქვენ იყენებთ სხვადასხვა პარამეტრებს და გსურთ შეამოწმოთ, არის თუ არა ის რეალურად დანერგილი სპეციალურად I/O- ვრცელი საორიენტაციოდ, მაშინ შეიძლება დაგჭირდეთ ბუფერული ქეშის გასუფთავება. თქვენ შეგიძლიათ ჩააგდოთ ქეში, როგორც ზემოთ იყო განმარტებული სისტემის გადატვირთვის გარეშე, ანუ, არ არის საჭირო გათიშვის დრო.
Linux შექმნილია ისე, რომ ის იხილავს დისკის ქეშს დისკზე გადახედვამდე. თუ ის აღმოაჩენს რესურსს ქეში, მაშინ მოთხოვნა არ აღწევს დისკზე. თუ ჩვენ ვასუფთავებთ ქეშს, დისკის ქეში ნაკლებად სასარგებლო იქნება, რადგან OS ეძებს რესურსს დისკზე.
უფრო მეტიც, ის ასევე შეანელებს სისტემას რამდენიმე წამის განმავლობაში, სანამ ქეში გაწმენდილია და OS– ით მოთხოვნილი ყველა რესურსი კვლავ იტვირთება დისკის ქეში.
ახლა ჩვენ შევქმნით ჭურვის სკრიპტს, რომლის საშუალებითაც ყოველდღიურად ხდება RAM ქეშის ავტომატური გაწმენდა დილის 2 საათი cron scheduler ამოცანის მეშვეობით. შექმენით shell სკრიპტი clearcache.sh და დაამატეთ შემდეგი სტრიქონები.
#!/bin/bash. # შენიშვნა, ჩვენ ვიყენებთ "ექო 3" -ს, მაგრამ არ არის რეკომენდებული წარმოებაში, ნაცვლად ამისა გამოიყენეთ "ექო 1" ექო "echo 3>/proc/sys/vm/drop_caches"
დააყენეთ შესრულების ნებართვა clearcache.sh ფაილი
# chmod 755 clearcache.sh.
ახლა თქვენ შეგიძლიათ დარეკოთ სკრიპტს, როდესაც თქვენ გჭირდებათ RAM- ის ქეში გაასუფთაოთ.
ახლა დააყენეთ cron, რომ გაასუფთაოთ RAM ქეში ყოველდღე დილის 2 საათზე. გახსნა crontab რედაქტირებისთვის.
# crontab -e.
მიამაგრეთ ქვემოთ მოცემული ხაზი, შეინახეთ და გამოდით მის გასაშვებად დილის 2 საათი ყოველდღიურად.
0 2 * * */path/to/clearcache.sh.
დამატებითი ინფორმაციისთვის, თუ როგორ უნდა შეაგროვოთ სამუშაო, შეგიძლიათ ნახოთ ჩვენი სტატია 11 Cron დაგეგმვის ვაკანსიები.
არა! ეს არ არის. წარმოიდგინეთ სიტუაცია, როდესაც თქვენ დაგეგმილია სცენარის გაწმენდა ram cache ყოველდღიურად დილის 2 საათი. ყოველდღე დილის 2 საათზე სკრიპტი სრულდება და ის ანაწილებს თქვენს RAM მეხსიერებას. ერთ დღეს რაიმე მიზეზის გამო, შესაძლოა მოსალოდნელზე მეტი მომხმარებელი იყოს თქვენს ვებგვერდზე და ეძებს რესურსს თქვენი სერვერისგან.
ამავე დროს დაგეგმილი სკრიპტი მუშაობს და ასუფთავებს ყველაფერს ქეში. ახლა ყველა მომხმარებელი იღებს მონაცემებს დისკიდან. ეს გამოიწვევს სერვერის გათიშვას და მონაცემთა ბაზის გაფუჭებას. ასე გაასუფთავეთ ram-cache მხოლოდ საჭიროების შემთხვევაში და იცოდეთ თქვენი ნაბიჯები, სხვაგვარად თქვენ ხართ ტვირთის კულტის სისტემის ადმინისტრატორი.
თუ გსურთ Swap სივრცის გასუფთავება, შეიძლება მოგწონთ ქვემოთ მოცემული ბრძანების გაშვება.
# swapoff -a && swapon -a.
ასევე თქვენ შეგიძლიათ დაამატოთ ზემოთ მითითებული ბრძანება cron სკრიპტზე, ყველა დაკავშირებული რისკის გაგების შემდეგ.
ახლა ჩვენ გავაერთიანებთ ორივე ზემოთ მოცემულ ბრძანებას ერთ ბრძანებაში, რათა შევქმნათ შესაბამისი სკრიპტი RAM Cache- ის და Swap Space- ის გასასუფთავებლად.
# echo 3>/proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\ n%s \ n' 'Ram -cache and Swap Cleared' OR $ su -c "echo 3> '/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\ n%s \ n' 'Ram -cache and Swap Cleared'" ფესვი
ორივე ზემოთ ბრძანების შესამოწმებლად, ჩვენ შევასრულებთ ბრძანებას ”უფასო –ჰ”სკრიპტის გაშვებამდე და შემდეგ და შეამოწმებს ქეშს.
სულ ეს არის, თუ სტატია მოგეწონათ, არ დაგავიწყდეთ მოგვაწოდოთ თქვენი ღირებული გამოხმაურება კომენტარები რომ შეგვატყობინოთ, როგორ ფიქრობთ, კარგი იდეაა წარმოების პროცესში ვერძის ქეში და ბუფერის გაწმენდა და საწარმო?