Bagaimana cara menghitung jumlah memori yang diperlukan agar Linux / ssh responsif? [Tutup]

-4

Saya punya tugas menerima daemon yang berjalan di banyak mesin. Tugas sewenang-wenang dikirim oleh klien yang kemudian dieksekusi di server, kadang-kadang mengambil sedikit memori dan terkadang mendorong hingga batas yang saya atur dalam konfigurasi daemon (tugas tidak akan pernah melebihi batas, bahkan dengan perilaku overcommit linux). Saya ingin menjaga batas setinggi mungkin, sehingga memungkinkan tugas untuk berjalan dan menyelesaikan, tetapi tidak terlalu tinggi sehingga menekan terhadap batas kotak menjadi sama sekali tidak responsif, dan tidak terlalu tinggi sehingga tugas sebenarnya memperlambat diri mereka dengan macet kotak. Saya ingin selalu dapat ssh.

Apakah ada rumus atau teknik yang bisa saya gunakan untuk menentukan seberapa besar untuk menetapkan batas? Ide terbaik yang saya miliki sekarang adalah melakukan boot baru dari kotak tanpa tugas yang berjalan dan memeriksa penggunaan memori (tidak termasuk cache / buffer) dan menganggap itu yang diperlukan untuk menjaga semuanya berjalan. Maka saya akan mengurangi itu dari berapa banyak memori fisik kotak harus mendapatkan batas.

Joseph Garvin
sumber
Tidak mungkin menjawab pertanyaan ini. Itu akan tergantung pada tugas yang dijalankan.
ChrisInEdmonton
@ChrisInEdmonton bagaimana itu pertanyaan yang mustahil? detail seperti apa yang perlu Anda ketahui tentang tugas-tugas tersebut? Saya pikir ini mungkin yang sempurna adalah musuh dari situasi yang baik. Saya mengerti tidak ada solusi yang sempurna untuk masalah seperti ini, tetapi pasti perkiraan kasar mungkin? Misalnya, apa yang salah dengan metode yang saya usulkan?
Joseph Garvin
Matikan saja swap dan biarkan pembunuh bayaran menangani semuanya.
gogators
Profil yang tepat dan lengkap dari tugas yang akan dijalankan. Ini harus mencakup deskripsi lengkap tentang profil memori untuk tugas-tugas itu. Tanpa itu, pertanyaannya tidak bisa dijawab.
ChrisInEdmonton

Jawaban:

1

Pertama dari Jawaban: Tidak ada cara mudah untuk melakukan ini.

Sementara itu dapat dilakukan, apa yang ingin Anda lakukan adalah mencari tahu berapa banyak memori yang dapat digunakan program Anda sebelum sistem menjadi tidak responsif. Namun, ini bukan hanya masalah memori, Ini adalah masalah CPU dan bandwidth juga. Karena, bahkan dengan hanya beberapa klien, sebuah komputer super akan "tidak responsif" terhadap ssh jika Anda hanya menggunakan koneksi dial-up.

Cara terbaik untuk melakukan ini adalah dengan coba-coba. Pilih titik awal yang layak, dan tambahkan sampai Anda mulai melihat beberapa respons yang lebih lama dari biasanya.

Jadi, jika Anda menginginkan jawaban umum, sistem akan menjadi tidak responsif ketika kehabisan memori dan terhenti ...

Semoga ini membantu!

Gamerb
sumber