SWAP file

jakobsp
Antal: 2
Tilmeldt:
03-01-2016
User is offline
SWAP file

Hi

Som i sikkert kan regne ud, med dette sp'rgsmpl er jeg ny inden for Linux, men her er det
Jeg vil gerne lave en 20GB swap fil - never mind hvorfor, det vil jeg bare gerne... Jeg bruger denne kommando

dd if=/dev/zero of=/hana/swapfile2.swp bs=1024k count=20480k

Men filen bliver bare gigantisk - stopper aldrig! Jeg havde en forventning om at den ville blive 20GB stor, men p.t. efter en halv time er den oppe paa 40GB!

Hvad er der galt!


mrbrown79
Antal: 470
Tilmeldt:
12-01-2010
User is offline
dd if=/dev/zero

#0: dd if=/dev/zero of=/hana/swapfile2.swp bs=1024k count=20480k
Men filen bliver bare gigantisk - stopper aldrig! Jeg havde en forventning om at den ville blive 20GB stor, men p.t. efter en halv time er den oppe paa 40GB!
Hvad er der galt!

En forregnelse:)

1024k * 20480k ~= 20 TB (!)

Fjern eksempelvis det første 'k', så kommer du forhåbentlig ned på 20 GB:
dd if=/dev/zero of=/hana/swapfile2.swp bs=1024 count=20480k


mich
mich's picture
Antal: 935
Tilmeldt:
13-10-2007
User is offline
Jeg vil gerne lave en

#0: Jeg vil gerne lave en 20GB swap fil - never mind hvorfor, det vil jeg bare gerne...
Trods dit "never mind":
Normalt benytter Linux en swap-partition og ikke en swapfil. Den kan oprettes under installationen eller senere med GParted.
Mht. størrelsen:
En gammel tommelfingerregel siger 2 gange RAM-størrelsen, men har man meget RAM, kan mindre gøre det, og har man rigtig meget, kan man måske helt undvære.
Dog skal man, hvis man ønsker at bruge hibernate (suspend to disk), have en større swap end RAM-lageret.

./mich


julemand101
julemand101's picture
Antal: 1626
Tilmeldt:
17-01-2004
User is offline
Og lige en tilføjelse og et

Og lige en tilføjelse og et godt råd som mange nok ikke kender. Hvis du bare vil oprette en tom fil med 0'er så brug i stedet kommandoen fallocate som blot informerer filsystemet om du ønsker en fil af en given størrelse uden faktisk at oprette hele filens indhold (pladsen bliver reserveret og filsystemet noterer at indholdet skal være 0'er indtil der kommer andet indhold). Kommandoen virker ved blandt andet btrfs, ext4, og xfs og tager under et sekund at køre uanset filstørrelse.

Fx i dit tilfælde:
fallocate -l 20G /hana/swapfile2.swp

Men som mich også er inde på så virker det ikke vildt praktisk at have 20 GB swap. :)


jakobsp
Antal: 2
Tilmeldt:
03-01-2016
User is offline
Ak so

Hi

Åh ja naturligvis... Jeg havde ikke lige helt opfattet syntaxen - troede faktisk at den betød bs (Blokke af) count (op til) :-)

Så jeg kunne også ændre til dd if=/dev/zero of=/hana/swapfile2.swp bs=1k count=20480k som også vil give 20GB?

Jeg kunne jo så også bruge Julemand101´s løsning - lyder egentlig noget hurtigere.

Til spørgsmålet om det er fornuftigt eller ej: ja jeg ved godt det ikke er ideelt, men det er i forbindelse med load af en In-memory database og er blot et forsøg på at få installationen til at køre. Når det er færdigt skal swapfilen slettes...


lbm
lbm's picture
Antal: 807
Tilmeldt:
14-06-2006
User is offline
Måske det er hurtigere med

Måske det er hurtigere med en ægte ramdisk i så fald.. :)


mrbrown79
Antal: 470
Tilmeldt:
12-01-2010
User is offline
Så jeg kunne også

#4: Så jeg kunne også ændre til dd if=/dev/zero of=/hana/swapfile2.swp bs=1k count=20480k som også vil give 20GB?

Ja, syntaxen er:
bs~blokstørrelse
count~antal blokke

Så en vilkårlig kombination, hvor produktet er 20GB vil virke. Det kunne også være:
dd if=/dev/zero of=/hana/swapfile2.swp bs=1M count=20k