Tuning defaults
Linux's defaults have to suit servers, phones and desktops alike. SakuraOS changes a few of them for a desktop, where a responsive screen matters more than maximum throughput. All of them are ordinary configuration files you can change.
Memory and disk writes
From /etc/sysctl.d/99-sakura.conf:
| Setting | Value | Effect |
|---|---|---|
vm.dirty_bytes | 256 MB | At most this much unwritten data is held in memory, so writing it out never freezes the system for seconds. Linux's default is a percentage of memory, which is many gigabytes on a large machine. |
vm.dirty_background_bytes | 64 MB | Starts writing out quietly well before that limit. |
vm.dirty_writeback_centisecs | 15 s | How often data is written out. Less often means fewer disk wake-ups on a laptop. |
vm.vfs_cache_pressure | 50 | Keeps the list of recently used folders and files in memory longer. |
vm.watermark_boost_factor | 0 | Turns off a memory-reclaim behavior that causes stutters on desktops. |
vm.compaction_proactiveness | 0 | Stops the kernel reorganizing memory in the background. |
vm.page_lock_unfairness | 1 | Shortens the worst-case wait when several programs need the same memory page. |
kernel.nmi_watchdog | 0 | Turns off a debugging timer that runs on every processor core. |
net.core.netdev_max_backlog | 4096 | A longer queue for incoming network traffic on fast connections. |
kernel.kptr_restrict | 2 | Hides kernel memory addresses from programs. A security setting, not a speed one. |
Disk scheduling
Each drive gets an I/O scheduler that suits it, set by
/etc/udev/rules.d/60-sakura-ioscheduler.rules:
| Drive | Scheduler | Why |
|---|---|---|
| Hard disk | bfq | Moving the disk's head is slow, so it pays to order requests carefully. |
| SATA or USB SSD, SD card | mq-deadline | Light ordering with a limit on how long any request waits. |
| NVMe SSD | none | The drive schedules its own requests better than the kernel can. |
Compressed swap
Instead of a swap file on disk, SakuraOS uses zram: a compressed
area in memory, half the size of your RAM up to 8 GB, compressed with zstd.
When memory runs short, pages are compressed rather than written to disk,
which is much faster and does not wear out an SSD. It lets a computer with
little memory keep more programs open before something has to close.
Because compressed memory is so much faster than disk,
vm.swappiness is set to 180 in
/etc/sysctl.d/99-sakura-zram.conf, so the kernel uses it readily.
Changing them
The cleanest way to change a setting is to add your own file rather than
editing SakuraOS's. Files in /etc/sysctl.d are read in
alphabetical order and later ones win, so a file named
zz-local.conf overrides everything above:
# make swapping less eager echo "vm.swappiness = 60" | sudo tee /etc/sysctl.d/zz-local.conf sudo sysctl --system
To undo it, delete your file and run sudo sysctl --system again,
or restart.
The zram size lives in /etc/systemd/zram-generator.conf and the
disk schedulers in /etc/udev/rules.d/60-sakura-ioscheduler.rules.
If you edit those directly, your version is kept through updates. Changes to
them take effect after a restart.
The kernel's own scheduling comes from the kernel build, not from these files. See Kernel.
Last checked against the SakuraOS release of 3 October 2026. If your system behaves differently from this page, the page is wrong: please report it.