Kinerja Amazon - Amazon Elastic File System

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kinerja Amazon

Amazon EFS menyediakan tanpa server, set-and-forget sistem file elastis yang dapat Anda akses dari layanan komputasi apa pun di dalamnyaAWSdan lokal, termasuk:

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • Amazon Elastic Container Service (Amazon ECS)

  • Amazon Elastic Kubernetes Service (Amazon EKS)

  • AWS Fargate

  • AWS Lambda

Amazon EFS memberikan lebih dari 10 gibibyte per detik (GiBps) throughput lebih dari 500.000 IOPS, dan latensi milidetik atau satu digit milidetik rendah.

Bagian berikut memberikan gambaran umum tentang kinerja Amazon EFS, dan menjelaskan bagaimana konfigurasi sistem file Anda memengaruhi dimensi performa utama. Kami juga memberikan beberapa tips dan rekomendasi penting untuk mengoptimalkan kinerja sistem file Anda.

Ringkasan performa

Performa sistem file biasanya diukur menggunakan dimensi latensi, throughput, dan operasi I/O per detik (IOPS). Kinerja Amazon EFS di seluruh dimensi ini bergantung pada konfigurasi sistem file Anda. Konfigurasi berikut memengaruhi kinerja sistem file Amazon EFS:

  • Kelas penyimpanan- EFS Satu Zona atau Standar EFS

  • Mode performa- Tujuan Umum atau Max I/O

  • Mode throughput— Meledak atau Disediakan

Tabel berikut menggambarkan kinerja sistem file Amazon EFS untuk kombinasi kelas penyimpanan dan pengaturan mode kinerja yang tersedia.

Kinerja sistem file untuk kelas penyimpanan dan kombinasi mode kinerja
Latensi1 IOPS Throughput maksimum

Konfigurasi sistem file - Kelas penyimpanan dan mode kinerja

Operasi Baca

Operasi Penulisan

Operasi Baca

Operasi Penulisan

Per-file-system membaca2

Per-file-system menulis2

Setiap klien

Penyimpanan Satu Zona dan Tujuan Umum

Serendah 600 mikrodetik (µs)

Milidetik ber-digit tunggal yang rendah

35,000 7,000

3 GiBps

1 GiBps

500 MiBps

Penyimpanan standar dan Tujuan Umum

Serendah 600 µs

Milidetik ber-digit tunggal yang rendah

35,000 7,000

3 GiBps

1 GiBps

500 MiBps

Penyimpanan standar dan Max I/O

Milidetik

Satu digit untuk dua digit milidetik

>500,000 >100,000

3 GiBps

1 GiBps

500 MiBps
catatan

Catatan kaki:

  1. Latensi untuk membaca dan menulis data file ke kelas penyimpanan yang dioptimalkan biaya (IA-Standar dan IA — Satu Zona) adalah milidetik dua digit.

  2. Throughput baca dan tulis maksimum tergantung padaWilayah AWSdan pada mode throughput sistem file (Bursting atau Provisioned). Untuk informasi selengkapnya, lihat tabelKuota throughput defaultuntuk mode Meledak dan Disediakan Throughput.

    Throughput lebih dariWilayah AWSThroughput maksimum membutuhkan peningkatan kuota throughput. Setiap permintaan untuk throughput tambahan dipertimbangkan pada case-by-case dasar oleh tim layanan Amazon EFS. Persetujuan mungkin tergantung pada jenis beban kerja Anda. Untuk mempelajari selengkapnya tentang meminta kenaikan kuota, lihatKuota dan batasan Amazon EFS.

Kelas penyimpanan dan kinerja

Amazon EFS menggunakan kelas penyimpanan berikut:

  • Kelas penyimpanan One Zone EFS- EFS Satu Zona dan Akses Jarang Satu Zona EFS (IA - Satu Zona EFS). Kelas penyimpanan One Zone EFS mereplikasi data di dalam Availability Zone.

  • Kelas penyimpanan EFS Standar- Standar EFS dan IA-Standar EFS. Kelas penyimpanan Standar EFS mereplikasi data di beberapa Availability Zone (Multi-AZ).

Latensi byte pertama saat membaca dari atau menulis ke salah satu kelas penyimpanan IA lebih tinggi daripada kelas penyimpanan Standar EFS atau EFS One Zone.

Untuk informasi selengkapnya tentang kelas penyimpanan EFS, lihatKelas penyimpanan EFS.

Mode performa

Amazon EFS menawarkan dua mode kinerja, General Purpose dan Max I/O:

  • Mode Serba Gunamendukung hingga 35.000 IOPS dan memiliki latensi per operasi terendah. Sistem file dengan kelas penyimpanan EFS One Zone selalu menggunakan mode kinerja Tujuan Umum. Untuk sistem file dengan kelas penyimpanan Standar EFS, Anda dapat menggunakan mode kinerja Tujuan Umum default atau mode kinerja Max I/O.

  • Mode I/Omendukung 500.000+ IOPS dan memiliki latensi per operasi yang lebih tinggi jika dibandingkan dengan mode Tujuan Umum.

Anda mengatur mode kinerja saat Anda membuat sistem file, dan Anda tidak dapat mengubahnya setelah dibuat.

Sebaiknya gunakan mode kinerja Tujuan Umum untuk sebagian besar aplikasi. Jika Anda tidak yakin mode kinerja mana yang akan digunakan, pilih mode kinerja Tujuan Umum. Untuk membantu memastikan bahwa beban kerja Anda tetap dalam batas IOPS yang tersedia untuk sistem file menggunakan mode Tujuan Umum, Anda dapat memantauPercentIOLimit CloudWatch metrik. Untuk informasi selengkapnya, lihat Amazon CloudWatch metrik untuk Amazon EFS.

Aplikasi dapat menskalakan IOPS mereka secara elastis hingga batas yang terkait dengan mode kinerja. Anda tidak ditagih secara terpisah untuk IOPS; mereka termasuk dalam akuntansi throughput sistem file. Setiap permintaan Network File System (NFS) dipertanggungjawabkan sebagai throughput 4 KB, atau permintaan dan ukuran responsnya yang sebenarnya, mana yang lebih besar. Misalnya, sistem file yang dapat mendorong 100 MBps throughput dapat mendorong hingga 25.600 4-KB menulis per detik (100 MBps dibagi dengan 4 KB per permintaan = 25.600 permintaan per detik).

Mode throughput

Mode throughput sistem file menentukan throughput yang tersedia untuk sistem file Anda. Amazon EFS menawarkan dua mode throughput, Meledak Throughput dan Provisioned Throughput. Throughput baca didiskon untuk memungkinkan Anda mendorong throughput baca yang lebih tinggi daripada throughput tulis. Tergantung padaWilayah AWS, discount untuk membaca adalah antara 1,66 dan 3x. Untuk informasi selengkapnya, lihat tabelkuota throughput defaultuntuk mode Meledak dan Disediakan Throughput. Pendiskon mengurangi throughput yang diukur untuk dibaca, dan tidak memengaruhi akrual kredit penulisan atau burst. Selanjutnya, baca diskon tidak pernah mengurangi throughput yang diukur untuk permintaan NFS tunggal di bawah ukuran permintaan minimum 4 KB.

Memahami throughput terukur

Semua sistem file Amazon EFS memiliki throughput terukur terkait. Untuk sistem file yang menggunakan mode Throughput yang Disediakan, throughput terukur ditentukan oleh jumlah throughput yang disediakan. Untuk sistem file yang menggunakan mode Meledak Throughput, throughput terukur ditentukan oleh jumlah data yang disimpan dalam kelas penyimpanan Standar EFS atau EFS One Zone.

Permintaan baca dan permintaan tulis diukur dengan tarif yang berbeda. Pengukur Amazon EFS membaca permintaan sepertiga tingkat permintaan lainnya.

contoh throughput meteran EFS

Misalnya, jika Anda mengemudi 30 mebibytes per detik (MiBps) dari kedua throughput baca dan tulis throughput, bagian baca dihitung sebagai 10 MiBps throughput meteran, bagian tulis dihitung sebagai 30 MiBps, dan throughput meteran gabungan adalah 40 MiBps. Throughput gabungan yang disesuaikan untuk laju pengukuran ini tercermin dalamMeteredIOBytesAmazon CloudWatch metrik. Untuk informasi selengkapnya, lihat Amazon CloudWatch metrik untuk Amazon EFS.

Throughput yang melonjak

Mode Throughput Meledak adalah mode throughput Amazon EFS default. Ini sangat cocok untuk aplikasi tradisional yang memiliki pola throughput yang meledak. Saat throughput rendah, mode Meledak Throughput menggunakan burst bucket untuk menyimpan kredit burst. Ketika throughput lebih tinggi, ia menggunakan kredit burst.

Dalam mode Meledak Throughput, throughput sistem file sebanding dengan ukuran sistem file di kelas penyimpanan Standar, hingga maksimum yang bergantung pada Wilayah Amazon EFS. Untuk informasi selengkapnya tentang batas per-wilayah, lihat tabelkuota throughput defaultuntuk mode Meledak dan Disediakan Throughput.

Ketika kredit burst tersedia, sistem file dapat mendorong hingga 100 MBps per terabyte (TB) penyimpanan, dengan minimum 100 MBps. Jika tidak ada kredit burst yang tersedia, sistem file dapat mendorong hingga 50 MBps per TB penyimpanan dengan minimal 1 MBps.

Throughput baca dan tulis diukur, dan kredit burst dikurangkan dari saldo kredit burst untuk throughput terukur. Kredit burst bertambah sebanding dengan ukuran sistem file pada tingkat dasar sistem file. 50 MBps kredit burst diperoleh untuk setiap TB penyimpanan. Setiap kali sistem file mengkonsumsi kurang dari tingkat dasar, itu bertambah kredit burst. Setiap kali sistem file mengkonsumsi lebih dari tarif dasarnya, ia mengkonsumsi kredit burst. Ukuran meteranValueInStandarddigunakan untuk menentukan baseline throughput I/O dan tingkat burst Anda. Ukuran meteran sistem file untuk kinerja Meledak Throughput tidak termasuk jumlah data yang disimpan dalam kelas penyimpanan Akses Jarang.

EFS burst

Amazon EFS menggunakan sistem kredit untuk menentukan kapan sistem file dapat meledak. Setiap sistem file mendapatkan kredit dari waktu ke waktu pada tingkat dasar yang ditentukan oleh ukuran sistem file yang disimpan dalam kelas penyimpanan Standar EFS atau Standar Satu Zona. Sebuah sistem file menggunakan kredit setiap kali membaca atau menulis data. Tingkat baseline adalah 50 MiBps per TiB penyimpanan (setara dengan 50 KiB/s per GiB penyimpanan). Karena meter Amazon EFS membaca operasi pada sepertiga tingkat operasi lain menuju laju awal, sistem file EFS dapat mendorong hingga 150 KiB/s per GiB throughput baca, atau 50 KiB/s per GiB throughput tulis pada tingkat dasar ini.

Sebuah sistem file dapat mendorong throughput pada tingkat dasar meteran terus menerus. Sistem file mengakumulasi kredit burst setiap kali tidak aktif atau mendorong throughput di bawah tingkat meteran baseline. Akumulasi kredit burst memberikan sistem file kemampuan untuk mendorong throughput di atas tingkat baseline.

Misalnya, sistem file dengan 100 GiB data terukur di Penyimpanan standar dapat meledak (pada 100 MiBps) untuk 5 persen dari waktu jika tidak aktif untuk sisanya 95 persen. Selama periode 24 jam, sistem file menghasilkan kredit senilai 432.000 MiB, yang dapat digunakan untuk meledak pada 100 MiBps selama 72 menit.

Sistem file yang lebih besar dari 1 TiB selalu dapat meledak hingga 50 persen dari waktu jika tidak aktif untuk 50 persen sisanya.

Tabel berikut memberikan contoh perilaku yang meledak.

Ukuran sistem file Throughput burst Throughput dasar
Sistem file dengan 100 GiB data terukur dalam penyimpanan Standar dapat...
  • Burst untuk 300 mebibytes per detik (MiBps) Read-only hingga 72 menit per hari

  • Throughput MiBps hanya menulis hingga 72 menit per hari, atau

  • Berkendara hingga 15 MiBps Hanya baca

  • Mengendarai hingga 5 MiBps hanya menulis terus menerus

Sistem file dengan 1-TiB data meteran dalam penyimpanan Standar dapat...
  • Throughput MiBps read-only selama 12 jam per hari

  • Throughput MiBps hanya menulis selama 12 jam per hari, atau

  • 150 MiBps Hanya baca

  • Throughput MiBps hanya menulis terus menerus

Sebuah sistem file dengan 10-TiB data meteran dalam penyimpanan Standar dapat...
  • Throughput GiBps read-only selama 12 jam per hari

  • Throughput GiBps hanya menulis selama 12 jam per hari, atau

  • Throughput GiBps Hanya baca

  • 500 MiBps hanya menulis terus menerus

Umumnya, sistem file yang lebih besar dapat...
  • Throughput MiBps read-only per TiB penyimpanan selama 12 jam per hari

  • Throughput MiBps write-only per TiB penyimpanan selama 12 jam per hari, atau

  • 150 MiBps hanya-baca per TiB penyimpanan secara terus menerus

  • Throughput MiBps Write-saja per TiB penyimpanan secara terus menerus

catatan

Amazon EFSThroughput yang terukurdari 1 MiBps untuk semua sistem file, bahkan jika tingkat dasar lebih rendah.

Ukuran sistem file yang digunakan untuk menentukan baseline dan burst rate adalahValueInStandardukuran meteran tersedia melaluiDescribeFileSystemsOperasi API

Sistem file dapat memperoleh kredit hingga saldo kredit maksimum 2.1 TiB untuk sistem file yang lebih kecil dari 1 TiB, atau 2.1 TiB per TiB yang disimpan untuk sistem file yang lebih besar dari 1 TiB. Pendekatan ini menyiratkan bahwa sistem file dapat mengakumulasi kredit yang cukup untuk meledak hingga 12 jam terus menerus.

Mode Throughput yang Disediakan

Untuk aplikasi yang memiliki throughput yang relatif konstan, kami merekomendasikan mode Throughput yang Disediakan. Dalam mode Throughput yang Disediakan, Anda menentukan tingkat throughput yang dapat dikendarai oleh sistem file terlepas dari ukuran sistem file atau saldo kredit burst. Anda dikenai biaya untuk jumlah throughput yang Anda sediakan yang melebihi tingkat throughput dasar sistem file berdasarkan jumlah penyimpanan jika sistem file Anda menggunakan mode Meledak Throughput. Jika ukuran meteran data yang disimpan dalam Penyimpanan standar sistem file Anda memberikan throughput dasar yang lebih tinggi daripada jumlah throughput yang telah Anda sediakan, maka sistem file Anda akan secara otomatis menggunakan mode Meledak Throughput.

Mengalihkan mode throughput

Anda dapat mengganti mode throughput sistem file yang ada, dengan batasan bahwa Anda hanya dapat membuat satu perubahan terbatas dalam periode 24 jam. Berikut ini dianggap perubahan terbatas:

  • Mengubah mode throughput sistem file (dari Throughput yang Disediakan menjadi Meledak Throughput, atau dari Meledak Throughput ke Provisioned Throughput).

  • Mengurangi jumlah throughput yang disediakan dalam mode Throughput yang Disediakan.

Kiat kinerja EFS Amazon EFS

Saat menggunakan Amazon EFS, ingatlah tips performa berikut ini.

Ukuran I/O

Sifat terdistribusi Amazon EFS memungkinkan tingkat ketersediaan, daya tahan, dan skalabilitas yang tinggi. Arsitektur terdistribusi ini menghasilkan overhead latensi kecil untuk setiap operasi file. Karena latency per-operasi ini, throughput keseluruhan secara umum meningkat karena ukuran I/O rata-rata yang meningkat, karena overhead diamortisasi melebihi jumlah data yang lebih besar.

Model Permintaan

Jika Anda mengaktifkan penulisan asinkron ke sistem file Anda, operasi tulis yang tertunda menjadi buffer di instans Amazon EC2 sebelum ditulis di Amazon EFS secara asinkron. Penulisan asinkron biasanya memiliki latensi yang lebih rendah. Saat melakukan penulisan asinkron, kernel menggunakan memori tambahan untuk melakukan cache.

Sistem file yang telah mengaktifkan penulisan sinkron, atau yang membuka file menggunakan opsi yang melewati cache (misalnya,O_DIRECT), mengeluarkan permintaan sinkron ke Amazon EFS. Setiap operasi melakukan perjalan pulang-pergi antara klien dan Amazon EFS.

catatan

Model permintaan pilihan Anda telah mengorbankan konsistensi (jika Anda menggunakan beberapa instans Amazon EC2) dan kecepatan. Menggunakan penulisan sinkron memberikan peningkatan konsistensi data dengan menyelesaikan setiap transaksi permintaan tulis sebelum memproses permintaan berikutnya. Menggunakan penulisan asinkron memberikan peningkatan throughput dengan buffering operasi penulisan yang tertunda.

Pengaturan pemasangan klien NFS

Pastikan Anda menggunakan opsi pemasangan yang disarankan seperti yang diuraikan diMemasang sistem file EFSdan diPertimbangan pemasangan tambahan.

Saat memasang sistem file Anda pada instans Amazon EC2, Amazon EFS mendukung protokol Network File System versi 4.0 dan 4.1 (NFSv4). NFSv4.1 memberikan kinerja yang lebih baik untuk operasi baca file kecil parallel (lebih dari 10.000 file per detik) dibandingkan dengan NFSv4.0 (kurang dari 1.000 file per detik). Untuk instans macOS Amazon EC2 yang menjalankan macOS Big Sur, hanya NFSv4.0 yang didukung.

Jangan gunakan opsi pemasangan berikut:

  • noac,actimeo=0,acregmax=0,acdirmax=0- Opsi ini menonaktifkan cache atribut, yang memiliki dampak kinerja yang sangat besar.

  • lookupcache=pos,lookupcache=none- Opsi ini menonaktifkan cache pencarian nama file, yang memiliki dampak yang sangat besar pada kinerja.

  • fsc- Opsi ini memungkinkan caching file lokal, tetapi tidak mengubah koherensi cache NFS, dan tidak mengurangi latensi.

catatan

Saat Anda memasang sistem file Anda, pertimbangkan untuk meningkatkan ukuran buffer baca dan tulis untuk klien NFS Anda menjadi 1 MB.

Mengoptimalkan kinerja file kecil

Anda dapat meningkatkan kinerja file kecil dengan meminimalkan pembukaan kembali file, meningkatkan paralelisme, dan menggabungkan file referensi jika memungkinkan.

  • Minimalkan jumlah perjalanan pulang pergi ke server.

    Jangan terlalu menutup file jika Anda akan membutuhkannya nanti dalam alur kerja. Menjaga deskriptor file tetap terbuka memungkinkan akses langsung ke salinan lokal di cache. Operasi buka, tutup, dan metadata file umumnya tidak dapat dilakukan secara asinkron atau melalui pipeline.

    Saat membaca atau menulis file kecil, dua perjalanan pulang pergi tambahan itu signifikan.

    Setiap perjalanan pulang pergi (file terbuka, tutup file) dapat memakan waktu sebanyak membaca atau menulis megabyte data massal. Lebih efisien untuk membuka file input atau output sekali, di awal pekerjaan komputasi Anda, dan menahannya terbuka untuk seluruh pekerjaan.

  • Gunakan paralelisme untuk mengurangi dampak waktu pulang-pergi.

  • File referensi bundel dalam.zipberkas. Beberapa aplikasi menggunakan satu set besar file referensi kecil, sebagian besar read-only. Bundling ini dalam.zipfile memungkinkan Anda untuk membaca banyak file dengan satu perjalanan pulang-pergi buka-tutup.

    Klaster.zipFormat memungkinkan akses acak ke file individual.

Mengoptimalkan kinerja direktori

Saat melakukan daftar (ls) pada direktori yang sangat besar (lebih dari 100k file) yang sedang dimodifikasi secara bersamaan, klien Linux NFS dapat menggantung, tidak mengembalikan respons. Masalah ini diperbaiki di kernel 5.11, yang telah di-porting ke kernel Amazon Linux 2 4.14, 5.4, dan 5.10.

Sebaiknya simpan jumlah direktori pada sistem file Anda hingga kurang dari 10.000, jika memungkinkan. Gunakan subdirektori bersarang sebanyak mungkin.

Ketika daftar direktori, menghindari mendapatkan atribut file jika mereka tidak diperlukan, karena mereka tidak disimpan dalam direktori itu sendiri.

Mengoptimalkan ukuran read_ahead_kb NFS

NFSread_ahead_kbatribut mendefinisikan jumlah kilobyte untuk kernel Linux untuk membaca ke depan atau prefetch selama operasi baca berurutan.

Untuk versi kernel Linux sebelum 5.4.*,read_ahead_kbnilai diatur dengan mengalikanNFS_MAX_READAHEADdengan nilai untukrsize(ukuran buffer baca yang dikonfigurasi klien diatur dalam opsi pemasangan). Saat menggunakanOpsi mount yang disarankan, rumus ini ditetapkanread_ahead_kbuntuk 15 MB.

catatan

Dimulai dengan kernel Linux versi 5.4.*, klien Linux NFS menggunakan defaultread_ahead_kbnilai 128 KB. Sebaiknya tingkatkan nilai ini menjadi 15 MB.

Helper mount Amazon EFS yang tersedia diamazon-efs-utilsversi 1.33.2 dan yang lebih baru secara otomatis memodifikasiread_ahead_kbnilai sama dengan 15 *rsize, atau 15 MB, setelah memasang sistem file.

Untuk kernel Linux 5.4 atau yang lebih baru, jika Anda tidak menggunakan mount helper untuk me-mount sistem file Anda, pertimbangkan pengaturan secara manualread_ahead_kbuntuk 15 MB untuk meningkatkan kinerja. Setelah memasang sistem file, Anda dapat mengatur ulangread_ahead_kbnilai dengan menggunakan perintah berikut. Sebelum menggunakan perintah ini, ganti nilai berikut:

  • Gantiread-ahead-value-kbdengan ukuran yang diinginkan dalam kilobyte.

  • Ganti efs-mount-point dengan titik pasang sistem file.

device_number=$(stat -c '%d' efs-mount-point) ((major = ($device_number & 0xFFF00) >> 8)) ((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00))) sudo bash -c "echo read-ahead-value-kb > /sys/class/bdi/$major:$minor/read_ahead_kb"

Contoh berikut menetapkanread_ahead_kbukuran untuk 15 MB.

device_number=$(stat -c '%d' efs) ((major = ($device_number & 0xFFF00) >> 8)) ((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00))) sudo bash -c "echo 15000 > /sys/class/bdi/$major:$minor/read_ahead_kb"