Toto je příspěvek hosta, který napsal SathiyaMoorthy.
Pomocí ramfs nebo tmpfs můžete alokovat část fyzické paměti, která bude použita jako oddíl. Tento oddíl můžete připojit a začít zapisovat a číst soubory jako oddíl pevného disku. Protože budete číst a zapisovat do paměti RAM, bude to rychlejší.
Když se důležitý proces drasticky zpomalí kvůli zápisu na disk, můžete si pro zápis souborů do paměti RAM vybrat buď souborový systém ramfs nebo tmpfs.
Připojení tmpfs i ramfs vám poskytne sílu rychlého čtení a zápisu souborů z a do primární paměti. Když to otestujete na malém souboru, možná neuvidíte velký rozdíl. Rozdíl si všimnete pouze tehdy, když zapisujete velké množství dat do souboru s jinou režií na zpracování, jako je síť.
1. Jak připojit Tmpfs
# mkdir -p /mnt/tmp # mount -t tmpfs -o size=20m tmpfs /mnt/tmp
Poslední řádek v následujícím df -k ukazuje výše připojený souborový systém /mnt/tmp tmpfs.
# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 32705400 5002488 26041576 17% / /dev/sda1 194442 18567 165836 11% /boot tmpfs 517320 0 517320 0% /dev/shm tmpfs 20480 0 20480 0% /mnt/tmp
2. Jak namontovat Ramfs
# mkdir -p /mnt/ram # mount -t ramfs -o size=20m ramfs /mnt/ram
Poslední řádek v následujícím příkazu mount ukazuje výše připojený souborový systém /mnt/ram ramfs.
# mount /dev/sda2 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) tmpfs on /mnt/tmp type tmpfs (rw,size=20m) ramfs on /mnt/ram type ramfs (rw,size=20m)
Ramfs a tmpfs můžete připojit během bootování přidáním položky do /etc/fstab.
3. Ramfs vs Tmpfs
Primárně oba ramfs a tmpfs dělají totéž s několika malými rozdíly.
- Ramfs poroste dynamicky . Takže musíte ovládat proces, který zapisuje data, abyste se ujistili, že ramfs nepřekročí dostupnou velikost RAM v systému. Řekněme, že máte ve svém systému 2 GB RAM a vytvořili jste 1 GB ramfs a připojili jste se jako /tmp/ram. Když celková velikost /tmp/ram překročí 1 GB, stále do něj můžete zapisovat data. Systém vám nezabrání v zápisu dat větších než 1 GB. Pokud však překročí celkovou velikost paměti RAM 2 GB, systém se může zablokovat, protože v paměti RAM není místo pro uložení dat.
- Tmpfs nebudou dynamicky růst . Nedovolilo by vám to napsat více, než je velikost, kterou jste zadali při připojování tmpfs. Nemusíte si tedy dělat starosti s řízením procesu, který zapisuje data, abyste se ujistili, že tmpfs nepřekročí zadaný limit. Může způsobit chyby podobné jako „Na zařízení nezbývá místo“.
- Tmpfs používá swap .
- Ramfs nepoužívá swap.
4. Nevýhody Ramfs a Tmpfs
Vzhledem k tomu, že ramfs i tmpfs zapisuje do systémové RAM, dojde k jeho smazání, jakmile se systém restartuje nebo se zhroutí. Měli byste tedy napsat proces pro sběr dat z ramfs/tmpfs na disk v pravidelných intervalech. Můžete také napsat proces pro zapsání dat z ramfs/tmpfs na disk, zatímco se systém vypíná. To vám však nepomůže v době pádu systému.
Experimentace | Tmpfs | Ramfs |
---|---|---|
Vyplňte maximum místa a pokračujte v psaní | Zobrazí chybu | Bude pokračovat v psaní |
Pevná velikost | Ano | Ne |
Používá Swap | Ano | Ne |
Nestálé úložiště | Ano | Ano |
Pokud chcete, aby váš proces zapisoval rychleji, je lepší zvolit tmpfs s opatřeními proti pádu systému.
Tento článek napsal SathiyaMoorthy. Pracuje ve společnosti bksystems, zajímá se o psaní článků a ve volném čase přispívá k open source. The Geek Stuff uvítá vaše tipy a články pro hosty.