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.