mint bármely más operációs rendszer, a GNU / Linux hatékonyan és még ennél is többet hajtott végre. De ha bármilyen folyamat eszik el a memóriát, és azt szeretné, hogy törölje azt, Linux egy módja annak, hogy flush vagy törölje ram cache.
hogyan lehet törölni a gyorsítótárat Linuxban?
minden Linux rendszernek három lehetősége van a gyorsítótár törlésére folyamatok vagy szolgáltatások megszakítása nélkül.
1. Tiszta PageCache csak.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Tiszta dentries és inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Tiszta PageCache, dentries és inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
a fenti parancs magyarázata.
sync öblítse le a fájlrendszer puffer. Parancs elválasztva ";”
Futtatás egymás után. A shell várja meg, amíg minden parancs befejeződik, mielőtt végrehajtja a következő parancsot a sorrendben. Amint azt a kernel dokumentációjában említettük, a drop_cache-re történő írás megtisztítja a gyorsítótárat anélkül, hogy bármilyen alkalmazást/szolgáltatást megölne, a command echo a fájlba történő írást végzi.
ha törölnie kell a lemez gyorsítótárát, az első parancs a legbiztonságosabb a vállalkozásban és a gyártásban, mivel"...echo 1 > ….”
csak a PageCache törlődik. Nem ajánlott a harmadik opció felett "...echo 3 >”
a termelés, amíg nem tudja, mit csinál, mivel ez törli PageCache, dentries és inodes.
jó ötlet a Linux Kernel által használt puffer és gyorsítótár felszabadítása?
amikor különböző beállításokat alkalmaz, és ellenőrizni szeretné, hogy valóban kifejezetten az I/O-kiterjedt benchmarkon hajtják-e végre, akkor lehet, hogy törölnie kell a puffer gyorsítótárat. A gyorsítótárat a fentiek szerint le lehet dobni a rendszer újraindítása nélkül, azaz nincs szükség leállásra.
a Linuxot úgy tervezték meg, hogy a lemez gyorsítótárába nézzen, mielőtt a lemezre nézne. Ha megtalálja az erőforrást a gyorsítótárban, akkor a kérés nem éri el a lemezt. Ha megtisztítjuk a gyorsítótárat, a lemez gyorsítótár kevésbé lesz hasznos, mivel az operációs rendszer megkeresi az erőforrást a lemezen.
ezenkívül a gyorsítótár tisztítása közben néhány másodpercig lassítja a rendszert, majd az operációs rendszer által igényelt összes erőforrás újra betöltődik a lemez-gyorsítótárba.
most létrehozunk egy shell szkriptet a RAM gyorsítótár automatikus törléséhez naponta 2-kor egy cron ütemező feladat segítségével. Hozzon létre egy shell szkriptet clearcache.sh adja hozzá a következő sorokat.
#!/bin/bash# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"
clearcache.sh akta.
# chmod 755 clearcache.sh
most hívhatja a szkriptet, amikor szükséges a ram gyorsítótár törlése.
most állítson be egy cron-t a RAM gyorsítótár törléséhez minden nap 2 órakor. Nyissa meg a crontab szerkesztést.
# crontab -e
csatolja az alábbi sort, mentse és lépjen ki, hogy naponta 2 órakor futtassa.
0 2 * * * /path/to/clearcache.sh
további részletekért arról, hogyan lehet munkát végezni, érdemes megnézni cikkünket a 11 Cron ütemezési munkáról.
jó ötlet a RAM gyorsítótár automatikus törlése a termelési kiszolgálón?
nem! nem az. Gondolj egy olyan helyzetre,amikor a szkriptet naponta 2-kor törölte a ram gyorsítótárat. Minden nap 2-kor a szkript végrehajtásra kerül, és lemossák a RAM-gyorsítótárat. Egy nap bármilyen okból, lehet, hogy a vártnál több felhasználó van online a webhelyén, és erőforrást keres a szerverről.
ugyanakkor ütemezett script fut, és törli mindent cache. Most minden felhasználó lekéri az adatokat a lemezről. Ez a szerver összeomlásához és az adatbázis sérüléséhez vezet. Tehát törölje ram-cache csak akkor, ha szükséges, és ismert a lábát lépéseket, különben egy rakomány kultusz rendszergazda.
hogyan lehet törölni a Swap helyet Linuxban?
Ha törölni szeretné a Swap helyet, akkor érdemes futtatni az alábbi parancsot.
# swapoff -a && swapon -a
a fenti parancsot is hozzáadhatja egy cron szkripthez, miután megértette az összes kapcsolódó kockázatot.
most mindkét fenti parancsot egyetlen parancsba egyesítjük, hogy megfelelő szkriptet készítsünk a RAM gyorsítótár törléséhez és a hely cseréjéhez.
# 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'" root
a fenti parancs tesztelése után futtatjuk a “free-h” parancsot a szkript futtatása előtt és után, majd ellenőrizzük a gyorsítótárat.