Zastanawiam się, jaka jest różnica między tworzeniem pliku wymiany
fallocate -l 1G /swapfile
i
dd if=/dev/zero of=/swapfile bs=1024 count=1024
oba wydają się działać dobrze, ale czy jedno ma przewagę nad drugim?
Jedyne, co mogłem znaleźć online, to to, że fallocate
nie działa na wszystkich systemach plików.
fallocate
jest zwykle szybszy (ponieważ nie wypełnia utworzonego pliku zerami) - w przeciwnym razie nie ma różnic, wynik końcowy jest taki sam. Zobacz: antipaucity.com/2017/08/31/…Odpowiedzi:
Z strony
mkswap
podręcznika :I ze strony
swapon
man :Wynika z tego, że chociaż
fallocate
może być szybszydd
, nie nadaje się do tworzenia plików wymiany i nie jest obsługiwany przez narzędzia związane z zamianą.źródło
fallocate --length 8GiB swapfile
ja.fallocate
miałby być problemem. Wygląda na to, że alokuje przestrzeń. (Jak napisano na etykiecie.) A robieniefallocate -l 1g /swaptest && mkswap /swaptest && swapon /swaptest
dalejext4
nic nie narzeka.truncate -l 1g
byłoby inaczej, ponieważ po prostu ustawia rozmiar pliku, ale nie przydziela żadnych bloków.Fallocate jest szybszy, ze strony Fallocate:
fallocate służy do manipulowania przydzielonym miejscem na dysku dla pliku, zarówno w celu zwolnienia, jak i wstępnego przydzielenia. W przypadku systemów plików, które obsługują wywołanie systemowe Fallocate, wstępny przydział odbywa się szybko przez przydzielenie bloków i oznaczenie ich jako niezainicjowanych, nie wymagając od operacji We / Wy bloków danych. Jest to o wiele szybsze niż tworzenie pliku przez wypełnienie go zerami.
fallocate(1)
źródło