Sejak memutakhirkan ke Solaris 11, ukuran ARC saya secara konsisten menargetkan 119MB, walaupun memiliki 30GB RAM. Apa? Mengapa?

9

Saya menjalankan kotak NAS / SAN pada Solaris 11 Express sebelum Solaris 11 dirilis. Kotaknya adalah HP X1600 dengan D2700 terlampir. Secara keseluruhan, disk SATA 12x 1TB 7200, disk SAS 12k 300GB 10k di zpool terpisah. Total RAM adalah 30GB. Layanan yang diberikan adalah CIFS, NFS dan iSCSI.

Semuanya baik-baik saja, dan saya memiliki grafik penggunaan memori ZFS yang terlihat seperti ini:

Ukuran Arc yang cukup sehat sekitar 23GB - memanfaatkan memori yang tersedia untuk caching.

Namun, saya kemudian memutakhirkan ke Solaris 11 ketika itu keluar. Sekarang, grafik saya terlihat seperti ini:

Output parsial arc_summary.pladalah:

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26719 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             915 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

Ini menargetkan 119MB sambil duduk di 915MB. Ada 30GB untuk dimainkan. Mengapa? Apakah mereka mengubah sesuatu?

Edit

Untuk memperjelas, arc_summary.pladalah Ben Rockwood, dan garis relevan menghasilkan statistik di atas adalah:

my $mru_size = ${Kstat}->{zfs}->{0}->{arcstats}->{p};
my $target_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c};
my $arc_min_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_min};
my $arc_max_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_max};
my $arc_size = ${Kstat}->{zfs}->{0}->{arcstats}->{size};

Entri Kstat ada di sana, saya hanya mendapatkan nilai aneh dari mereka.

Edit 2

Saya baru saja mengukur ulang ukuran busur dengan arc_summary.pl- Saya telah memverifikasi angka-angka ini dengan kstat:

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26697 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             744 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

Hal yang mengejutkan saya adalah Ukuran Target adalah 119MB. Melihat grafik, itu ditargetkan nilai yang sama persis (124,91M menurut kaktus, 119M menurut arc_summary.pl- pikir perbedaannya hanya 1024/1000 masalah pembulatan) sejak Solaris 11 diinstal. Sepertinya kernel melakukan upaya nol untuk menggeser ukuran target ke hal lain. Ukuran saat ini berfluktuasi karena kebutuhan sistem (besar) bertarung dengan ukuran target, dan tampaknya keseimbangan adalah antara 700 dan 1000MB.

Jadi pertanyaannya sekarang sedikit lebih tajam - mengapa Solaris 11 menetapkan ukuran target ARC saya menjadi 119MB, dan bagaimana cara mengubahnya? Haruskah saya menaikkan ukuran min untuk melihat apa yang terjadi?

Saya sudah terjebak output kstat -n arcstatslebih dari di http://pastebin.com/WHPimhfg

Edit 3

Ok, aneh sekarang. Saya tahu flibflob menyebutkan bahwa ada tambalan untuk memperbaikinya. Saya belum menerapkan tambalan ini (masih memilah masalah dukungan internal) dan saya belum menerapkan pembaruan perangkat lunak lainnya.

Kamis lalu, kotak itu jatuh. Seperti dalam, benar-benar berhenti merespons semuanya. Ketika saya reboot, itu kembali dengan baik, tapi inilah grafik saya sekarang.

Tampaknya telah memperbaiki masalahnya.

Ini barang tanah la la layak sekarang. Saya benar-benar tidak tahu apa yang terjadi. :(

menggeram
sumber

Jawaban:

4

Sayangnya saya tidak dapat menyelesaikan masalah Anda, tetapi inilah beberapa informasi latar belakang:

  • Ukuran target ARC tampaknya tidak menjadi nilai tetap. Saya mengalami masalah yang sama pada mesin Solaris 11 dan setelah setiap reboot, pada beberapa titik ukuran target tampaknya terkunci pada nilai antara ~ 100 dan ~ 500MB.

  • Setidaknya 3 orang lain menghadapi masalah yang sama, seperti yang dibahas dalam http://mail.opensolaris.org/pipermail/zfs-discuss/2012-January/050655.html

  • Ada juga laporan bug terbuka (7111576) pada "Dukungan Oracle Saya" ( https://support.oracle.com ). Jika server Anda berada di bawah kontrak dukungan yang valid, Anda harus mengajukan permintaan layanan dan merujuk bug itu. Sampai sekarang, perbaikan bug apa pun tampaknya masih bekerja dalam proses ...

Selain itu, tidak banyak yang dapat Anda lakukan. Jika Anda belum memutakhirkan versi zpool / zfs Anda, Anda dapat mencoba mem-boot ke dalam lingkungan boot Solaris 11 Express lama Anda dan menjalankannya sampai Oracle akhirnya memutuskan untuk merilis SRU yang memperbaiki masalah.

Sunting: Karena masalah penurunan kinerja telah dibahas di atas: Semuanya tergantung pada apa yang Anda lakukan. Saya telah melihat latensi mengerikan pada saham Solaris 11 NFS saya sejak memutakhirkan ke Solaris 11 11/11. Dibandingkan dengan sistem Anda, saya memiliki spindle yang relatif sedikit dan sangat bergantung pada caching ARC dan L2ARC seperti yang diharapkan (harap diketahui bahwa masalahnya juga menyebabkan L2ARC tidak tumbuh ke ukuran yang masuk akal). Ini tentu saja bukan masalah statistik yang disalahtafsirkan.

Meskipun Anda mungkin tidak terlalu bergantung pada ARC / L2ARC, Anda mungkin akan dapat mereproduksinya dengan membaca file besar (yang biasanya masuk ke dalam RAM Anda) beberapa kali dengan dd . Anda mungkin akan melihat bahwa pertama kali membaca file sebenarnya akan lebih cepat daripada membaca berturut-turut dari file yang sama (karena ukuran ARC konyol dan penggusuran cache yang tak terhitung jumlahnya).

Sunting: Saya sekarang berhasil menerima patch IDR dari Oracle yang menyelesaikan masalah ini. Jika sistem Anda berada di bawah dukungan, Anda harus meminta patch IDR untuk CR 7111576. Patch tersebut berlaku untuk Solaris 11 11/11 dengan SRU3.

nlx-ck
sumber
Saya pikir saya di bawah dukungan, tetapi saya bekerja di perusahaan besar, jadi siapa yang tahu?
growse
1

Mereka mengubah kstats.

Oracle Solaris 11 telah menghapus statistik berikut dari zfs: 0: arcstats:

  • evict_l2_cached
  • evict_l2_ memenuhi syarat
  • evict_l2_ tidak memenuhi syarat
  • evict_skip
  • hdr_size
  • l2_free_on_write
  • l2_size recycle_miss

dan menambahkan yang berikut ini ke zfs: 0: arcstats:

  • buf_size
  • meta_limit
  • meta_max
  • meta_used

Jadi ini pada dasarnya bisa menjadi masalah dengan skrip Anda.

juwi
sumber
Ini poin yang menarik, tapi saya rasa saya tidak menggunakan salah satu metrik itu untuk melaporkan angka-angka ini. Lihat edit.
growse
Itu memang masih di sini. Mempertimbangkan itu, ini terlihat sangat aneh. Apakah Anda melihat semacam penurunan kinerja?
juwi
Saya tidak bisa mengatakan saya punya. Saya mungkin harus mengukur ini.
growse
Dalam hal ini bukan kesalahan dalam apa yang Anda lihat dan Anda benar-benar memiliki keanehan di sana, harap dicatat Anda BISA memodifikasi nilai-nilai ini dengan cepat pada sistem langsung, atau menggunakan / etc / system secara permanen.
Nex7