Tmpfs with overflow on disk? The 2019 Stack Overflow Developer Survey Results Are Intmpfs and vm.swappinessunlimited tmpfsWhat happens when a tmpfs volume is full and swap is full? Is Linux's OOM-killer involved?How can I forbid the Linux kernel from accessing a certain RAM disk?How safe is it to increase tmpfs to more than physical memory?If tmpfs has bigger size than your RAM, how much RAM does it use? Are applications privileged for RAM?How to reserve ram for ramdisk (tmpfs) but also prevent it from swapingRAM alternative to swap partion or swap file on an SSDMount /var/logs as tmpfs, with help of overlayfs to save changes sometimesFilesystem in RAM that swaps to disk after a specified size
Protecting Dualbooting Windows from dangerous code (like rm -rf)
Why was M87 targetted for the Event Horizon Telescope instead of Sagittarius A*?
What is the motivation for a law requiring 2 parties to consent for recording a conversation
Do these rules for Critical Successes and Critical Failures seem Fair?
Did 3000BC Egyptians use meteoric iron weapons?
slides for 30min~1hr skype tenure track application interview
Did Section 31 appear in Star Trek: The Next Generation?
What is the meaning of the verb "bear" in this context?
If a Druid sees an animal’s corpse, can they wild shape into that animal?
What to do when moving next to a bird sanctuary with a loosely-domesticated cat?
What does Linus Torvalds mean when he says that Git "never ever" tracks a file?
Is a "Democratic" Oligarchy-Style System Possible?
Can one be advised by a professor who is very far away?
Pokemon Turn Based battle (Python)
When should I buy a clipper card after flying to OAK?
What do the Banks children have against barley water?
Where to refill my bottle in India?
Why isn't the circumferential light around the M87 black hole's event horizon symmetric?
Have you ever entered Singapore using a different passport or name?
Multiply Two Integer Polynomials
Falsification in Math vs Science
Are spiders unable to hurt humans, especially very small spiders?
Why do we hear so much about the Trump administration deciding to impose and then remove tariffs?
Should I use my personal e-mail address, or my workplace one, when registering to external websites for work purposes?
Tmpfs with overflow on disk?
The 2019 Stack Overflow Developer Survey Results Are Intmpfs and vm.swappinessunlimited tmpfsWhat happens when a tmpfs volume is full and swap is full? Is Linux's OOM-killer involved?How can I forbid the Linux kernel from accessing a certain RAM disk?How safe is it to increase tmpfs to more than physical memory?If tmpfs has bigger size than your RAM, how much RAM does it use? Are applications privileged for RAM?How to reserve ram for ramdisk (tmpfs) but also prevent it from swapingRAM alternative to swap partion or swap file on an SSDMount /var/logs as tmpfs, with help of overlayfs to save changes sometimesFilesystem in RAM that swaps to disk after a specified size
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I'm looking for a way to have a tmpfs-like file system that can be unlimited in size, but will use a specified amount of RAM after which the "oversize" data will be stored on another disk-backed filesystem
I'm running on a SSD-only system, with low available space (usually < 3 GB), so I don't want to reserve any space for SWAP or similar (that's my main requirement)
Do you know of any solution that would fit my use-case ?
linux tmpfs ramdisk
add a comment |
I'm looking for a way to have a tmpfs-like file system that can be unlimited in size, but will use a specified amount of RAM after which the "oversize" data will be stored on another disk-backed filesystem
I'm running on a SSD-only system, with low available space (usually < 3 GB), so I don't want to reserve any space for SWAP or similar (that's my main requirement)
Do you know of any solution that would fit my use-case ?
linux tmpfs ramdisk
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32
add a comment |
I'm looking for a way to have a tmpfs-like file system that can be unlimited in size, but will use a specified amount of RAM after which the "oversize" data will be stored on another disk-backed filesystem
I'm running on a SSD-only system, with low available space (usually < 3 GB), so I don't want to reserve any space for SWAP or similar (that's my main requirement)
Do you know of any solution that would fit my use-case ?
linux tmpfs ramdisk
I'm looking for a way to have a tmpfs-like file system that can be unlimited in size, but will use a specified amount of RAM after which the "oversize" data will be stored on another disk-backed filesystem
I'm running on a SSD-only system, with low available space (usually < 3 GB), so I don't want to reserve any space for SWAP or similar (that's my main requirement)
Do you know of any solution that would fit my use-case ?
linux tmpfs ramdisk
linux tmpfs ramdisk
edited 2 days ago
Glorfindel
3391511
3391511
asked Apr 22 '16 at 22:12
mickael9mickael9
1112
1112
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32
add a comment |
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32
add a comment |
1 Answer
1
active
oldest
votes
You can use dmsetup
to set a linear
device made of a /dev/ramX
plus your /dev/sdX
disk-device.
For instance, from the command prompt type:
dmsetup create mydev << EOF
> 0 65536 linear /dev/ram0 0
> 65536 262144 linear /dev/sdb 0
> EOF
The above creates a logical device named mydev
made of a 32MB (65536 sectors) ramdisk plus the first 128MB (262144 sectors) of /dev/sdb. Of course replace /dev/sdb
with the actual device file for your disk.
You may also want to use the exact size (or a bit less) of your disk or partition, and for that you need to know that size expressed in 512-bytes sectors. In order to know that for e.g. the /dev/sdb1
device you may do:
grep sdb1 /proc/partitions
and then use the big number that appears on the left of the device name, multiplied by 2. (because that big number is expressed in 1024-bytes blocks).
Then you have to format mydev
with your file-system type of choice. For instance:
mkfs.ext4 /dev/mapper/mydev
Finally mount it with:
mount /dev/mapper/mydev /mnt
Replace /mnt
with the actual directory you want to use as mount point, and enjoy.
To remove everything, do:
umount /mnt
dmsetup remove mydev
However it’s worth saying that this setup is less efficient than direct tmpfs filesystems, because tmpfs is already a (virtual) file-system on top of Linux's virtual memory manager, whereas ramdisks need an additional operation of memory-pages copying, plus they still require a regular file-system with its overhead on top of them.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f278451%2ftmpfs-with-overflow-on-disk%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use dmsetup
to set a linear
device made of a /dev/ramX
plus your /dev/sdX
disk-device.
For instance, from the command prompt type:
dmsetup create mydev << EOF
> 0 65536 linear /dev/ram0 0
> 65536 262144 linear /dev/sdb 0
> EOF
The above creates a logical device named mydev
made of a 32MB (65536 sectors) ramdisk plus the first 128MB (262144 sectors) of /dev/sdb. Of course replace /dev/sdb
with the actual device file for your disk.
You may also want to use the exact size (or a bit less) of your disk or partition, and for that you need to know that size expressed in 512-bytes sectors. In order to know that for e.g. the /dev/sdb1
device you may do:
grep sdb1 /proc/partitions
and then use the big number that appears on the left of the device name, multiplied by 2. (because that big number is expressed in 1024-bytes blocks).
Then you have to format mydev
with your file-system type of choice. For instance:
mkfs.ext4 /dev/mapper/mydev
Finally mount it with:
mount /dev/mapper/mydev /mnt
Replace /mnt
with the actual directory you want to use as mount point, and enjoy.
To remove everything, do:
umount /mnt
dmsetup remove mydev
However it’s worth saying that this setup is less efficient than direct tmpfs filesystems, because tmpfs is already a (virtual) file-system on top of Linux's virtual memory manager, whereas ramdisks need an additional operation of memory-pages copying, plus they still require a regular file-system with its overhead on top of them.
add a comment |
You can use dmsetup
to set a linear
device made of a /dev/ramX
plus your /dev/sdX
disk-device.
For instance, from the command prompt type:
dmsetup create mydev << EOF
> 0 65536 linear /dev/ram0 0
> 65536 262144 linear /dev/sdb 0
> EOF
The above creates a logical device named mydev
made of a 32MB (65536 sectors) ramdisk plus the first 128MB (262144 sectors) of /dev/sdb. Of course replace /dev/sdb
with the actual device file for your disk.
You may also want to use the exact size (or a bit less) of your disk or partition, and for that you need to know that size expressed in 512-bytes sectors. In order to know that for e.g. the /dev/sdb1
device you may do:
grep sdb1 /proc/partitions
and then use the big number that appears on the left of the device name, multiplied by 2. (because that big number is expressed in 1024-bytes blocks).
Then you have to format mydev
with your file-system type of choice. For instance:
mkfs.ext4 /dev/mapper/mydev
Finally mount it with:
mount /dev/mapper/mydev /mnt
Replace /mnt
with the actual directory you want to use as mount point, and enjoy.
To remove everything, do:
umount /mnt
dmsetup remove mydev
However it’s worth saying that this setup is less efficient than direct tmpfs filesystems, because tmpfs is already a (virtual) file-system on top of Linux's virtual memory manager, whereas ramdisks need an additional operation of memory-pages copying, plus they still require a regular file-system with its overhead on top of them.
add a comment |
You can use dmsetup
to set a linear
device made of a /dev/ramX
plus your /dev/sdX
disk-device.
For instance, from the command prompt type:
dmsetup create mydev << EOF
> 0 65536 linear /dev/ram0 0
> 65536 262144 linear /dev/sdb 0
> EOF
The above creates a logical device named mydev
made of a 32MB (65536 sectors) ramdisk plus the first 128MB (262144 sectors) of /dev/sdb. Of course replace /dev/sdb
with the actual device file for your disk.
You may also want to use the exact size (or a bit less) of your disk or partition, and for that you need to know that size expressed in 512-bytes sectors. In order to know that for e.g. the /dev/sdb1
device you may do:
grep sdb1 /proc/partitions
and then use the big number that appears on the left of the device name, multiplied by 2. (because that big number is expressed in 1024-bytes blocks).
Then you have to format mydev
with your file-system type of choice. For instance:
mkfs.ext4 /dev/mapper/mydev
Finally mount it with:
mount /dev/mapper/mydev /mnt
Replace /mnt
with the actual directory you want to use as mount point, and enjoy.
To remove everything, do:
umount /mnt
dmsetup remove mydev
However it’s worth saying that this setup is less efficient than direct tmpfs filesystems, because tmpfs is already a (virtual) file-system on top of Linux's virtual memory manager, whereas ramdisks need an additional operation of memory-pages copying, plus they still require a regular file-system with its overhead on top of them.
You can use dmsetup
to set a linear
device made of a /dev/ramX
plus your /dev/sdX
disk-device.
For instance, from the command prompt type:
dmsetup create mydev << EOF
> 0 65536 linear /dev/ram0 0
> 65536 262144 linear /dev/sdb 0
> EOF
The above creates a logical device named mydev
made of a 32MB (65536 sectors) ramdisk plus the first 128MB (262144 sectors) of /dev/sdb. Of course replace /dev/sdb
with the actual device file for your disk.
You may also want to use the exact size (or a bit less) of your disk or partition, and for that you need to know that size expressed in 512-bytes sectors. In order to know that for e.g. the /dev/sdb1
device you may do:
grep sdb1 /proc/partitions
and then use the big number that appears on the left of the device name, multiplied by 2. (because that big number is expressed in 1024-bytes blocks).
Then you have to format mydev
with your file-system type of choice. For instance:
mkfs.ext4 /dev/mapper/mydev
Finally mount it with:
mount /dev/mapper/mydev /mnt
Replace /mnt
with the actual directory you want to use as mount point, and enjoy.
To remove everything, do:
umount /mnt
dmsetup remove mydev
However it’s worth saying that this setup is less efficient than direct tmpfs filesystems, because tmpfs is already a (virtual) file-system on top of Linux's virtual memory manager, whereas ramdisks need an additional operation of memory-pages copying, plus they still require a regular file-system with its overhead on top of them.
edited 2 days ago
answered 2 days ago
LL3LL3
1,2099
1,2099
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f278451%2ftmpfs-with-overflow-on-disk%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
-linux, ramdisk, tmpfs
The functionality you desire is already the default behaviour. Linux automatically caches files in RAM for you. Maybe you should describe your use case in more detail.
– frostschutz
Apr 22 '16 at 22:32