Mungkin membantu untuk meningkatkan /proc/sys/vm/page-cluster
(standar:3).
Dari dokumentasi kernel (sysctl/vm.txt
):
halaman-cluster
page-cluster mengontrol jumlah halaman hingga halaman berurutan dibaca dari swap dalam satu upaya. Ini adalah swapcounterpart untuk membaca cache halaman di depan. Konsekutivitas yang disebutkan bukan dalam hal alamat virtual/fisik, tetapi berturut-turut pada ruang swap - artinya mereka ditukar bersama.
Ini adalah nilai logaritmik - menyetelnya ke nol berarti "1 halaman", menyetelnya ke 1 berarti "2 halaman", menyetelnya ke 2 berarti "4 halaman", dll. Zerodisables menukar readahead sepenuhnya.
Nilai defaultnya adalah tiga (delapan halaman sekaligus). Mungkin ada sedikit keuntungan dalam menyesuaikan ini ke nilai yang berbeda jika beban kerja Anda intensif-swap.
Nilai yang lebih rendah berarti latensi yang lebih rendah untuk kesalahan awal, tetapi pada saat yang sama kesalahan tambahan dan penundaan I/O untuk kesalahan berikutnya jika mereka telah menjadi bagian dari halaman berurutan yang akan dibawa ke depan.
Dokumentasi tidak menyebutkan batasan, jadi mungkin Anda dapat mengatur ini sangat tinggi agar semua swap dapat segera dibaca kembali. Dan tentu saja mengembalikannya ke nilai wajar setelahnya.
Menurut saya, Anda tidak dapat secara ajaib "membuat sistem responsif kembali". Anda dikenakan penalti atau membaca kembali halaman dari menukar ruang ke memori sekarang atau Anda menanggungnya nanti, tetapi dengan satu atau lain cara Anda menanggungnya. Memang, jika Anda melakukan sesuatu seperti swapoff -a && swapon -a
maka Anda mungkin merasa lebih rasa sakit daripada kurang, karena Anda memaksa beberapa halaman untuk disalin kembali ke memori yang seharusnya tidak diperlukan lagi dan akhirnya dihapus tanpa dibaca (pikirkan:Anda keluar dari aplikasi sementara banyak tumpukannya ditukar; halaman itu bisa dibuang sama sekali tanpa pernah dibaca kembali ke memori).
tetapi ini menghapus halaman dari swap, jadi halaman tersebut perlu ditulis lagi saat saya menjalankan skrip lagi.
Yah, hampir semua halaman yang disalin kembali dari swap ke memori utama akan segera dimodifikasi, jadi jika perlu dipindahkan kembali ke swap lagi di masa mendatang, itu harus ditulis lagi di swap. Perlu diingat bahwa swap sebagian besar adalah tumpukan memori, bukan halaman hanya-baca (yang biasanya didukung oleh file).
Saya pikir swapoff -a && swapon -a
Anda trik sebagus apa pun yang bisa Anda pikirkan.
Anda dapat mencoba menambahkan program yang paling Anda sukai ke cgroup dan menyetel swappiness sehingga saat berikutnya aplikasi menjalankan program yang Anda tambahkan cenderung menjadi kandidat untuk ditukar.
Beberapa halaman mereka kemungkinan masih akan ditukar tetapi mungkin mengatasi masalah kinerja Anda. Sebagian besar dari itu mungkin hanya perilaku "berhenti dan mulai" ketika banyak halaman program sedang ditukar dan program harus terus berhenti untuk menukar halamannya ke dalam RAM tetapi hanya dalam peningkatan 4k.
Alternatifnya, Anda dapat menambahkan aplikasi yang berjalan ke cgroup dan menyesuaikan swappiness sehingga aplikasi tersebut cenderung menggunakan file swap paling banyak. Ini akan memperlambat aplikasi tetapi akan menghemat sisa sistem.