Permutdosiero por helpi kun memorspacaj problemoj
Kiam mi komencis gastigi multajn Docker ujojn je retservilo mi ekhavis maltroajn problemojn kun memorspaco. Mi konstantis ke la gastservilo ne havis permuton por helpi.
Permutdosiero uzas spacon sur via disko por pligrandigi la memorkapablon de la servile, sed la atingorapido de via disko estas multoble pli malrapida ol la memoro kaj povas malrapidigi vian programaron. Do oni devas uzi ĝin nur atente kaj kontrolas ĉu ĝi funkcias en via propra situacio. Kiam mi kreas la ujojn la agordigado de la programaro postulas multa da memoro, sed ne necese kiam ili nur kuras kaj liveras kutime. Por mi, mi povas uzi permutdosieron por bona efiko.
Do sube estas la komandoj por krei permutdosiero kaj ebligi ĝin je linukso.
Unue ni vidu ĉu ni jam havas permuton
$ sudo swapon -s
Se tio ne eligas ion, tiam vi ne havas permuton. Tamen eblas havi pli ol unu permuto se vi ankoraŭ havas problemojn.
Alia metodo por vidi ĉu vi uzas permuton estas la free
komando, kiu montras la memoron por via operaciumo.
$ free -m
Kiu eligas
total used free shared buffers cached
Mem: 489 481 7 0 8 83
-/+ buffers/cache: 62 3890
Swap: 0 0 0
Kutime oni kreas subdiskon por permuto, ĉar mi uzas virtualan servilon tio ne eblas. Oni ankaŭ povas uzi dosieron.
Unue ni bezonas vidi tiom da diskspaco ni havas:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 8.6G 10G 47% /
tmpfs 245M 0 245M 0% /sys/fs/cgroup
udev 234M 0 234M 0% /dev
tmpfs 49M 1.4M 48M 3% /run
tmpfs 245M 1.8M 243M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
Ni vidis ke /
estas nur duone uzata. Ĉar la maŝino nur havas 500M da memoro ni ja havas spaco por krei permutdosieron. Oni rekomendas permutdosieron 1-2 oblo la memoro, en tiu situacio ni kreos permutdosieron kun 2x (2*500M = 1G) da spaco.
$ sudo fallocate -l 1G /permutdosiero
Nun ni bezonas ĝustigi la dosieran atingopermeson do nur la ĉefuzanto povas legi kaj verki ĝin.
$ sudo chmod 600 /permutdosiero
Tiam ni povas agordi la dosieron kiel permutdosieron
$ sudo mkswap /permutdosiero
Tiam ebligi ĝin
$ sudo swapon /permutdosiero
Por kontroli ĝin ni povas kuri swapon
denove
Filename Type Size Used Priority
/permutdosiero file 2097148 779460 -1
kaj free
total used free shared buffers cached
Mem: 489 467 21 1 4 55
-/+ buffers/cache: 407 81
Swap: 2047 662 1385
Ĉi tio ŝargas la permuton por nun, sed se ni reŝargos la maŝinon la permuto ne reŝargos. Por konservi la agordon ni bezonas aldoni
/swapfile none swap sw 0 0
al la fino de /etc/fstab
Denove, ĉi tio estas agordo kiu povas esti uzinda, sed ankaŭ povas malebligi programon per malrapideco se la programa bezonas multa da memoro.