Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pencatatan kueri lambat Amazon Neptunus
Mengidentifikasi, men-debug, dan mengoptimalkan kueri yang berjalan lambat bisa jadi sulit. Saat pencatatan kueri lambat Neptunus diaktifkan, atribut dari semua kueri yang berjalan lama secara otomatis dicatat untuk mempermudah proses ini.
Anda mengaktifkan pencatatan kueri lambat menggunakan parameter cluster DB neptune_enable_slow_query_log DB. Secara default, parameter ini diatur kedisabled
. Mengaturnya ke info
atau debug
mengaktifkan pencatatan kueri lambat. info
Pengaturan mencatat beberapa atribut berguna dari setiap kueri yang berjalan lambat, sedangkan debug
pengaturan mencatat semua atribut yang tersedia.
Untuk mengatur ambang batas untuk apa yang dianggap sebagai kueri yang berjalan lambat, gunakan parameter cluster DB neptune_slow_query_log_threshold untuk menentukan jumlah milidetik setelah itu kueri yang berjalan dianggap lambat dan dicatat saat pencatatan kueri lambat diaktifkan. Nilai default adalah 5000 milidetik (5 detik).
Anda dapat mengatur parameter cluster DB ini di AWS Management Console, atau menggunakan AWS CLI perintah modify-db-cluster-parameter-group, atau fungsi odifyDBCluster ParameterGroup manajemen M.
catatan
Parameter logging kueri lambat bersifat dinamis, artinya mengubah nilainya tidak memerlukan atau menyebabkan restart cluster DB Anda.
Untuk melihat log kueri lambat di AWS Management Console
Anda dapat melihat dan mengunduh log kueri lambat di AWS Management Console, sebagai berikut:
Pada halaman Instances, pilih instans DB dan kemudian gulir ke bagian Log. Anda kemudian dapat memilih file log di sana dan kemudian memilih Unduh untuk mengunduhnya.
File yang dihasilkan oleh pencatatan kueri lambat Neptunus
File log yang dihasilkan oleh pencatatan kueri lambat di Neptunus memiliki karakteristik sebagai berikut:
File dikodekan sebagai UTF -8.
Kueri dan atributnya dicatat dalam JSON formulir.
Atribut nol dan kosong tidak dicatat, kecuali untuk
queryTime
data.Log mencakup beberapa file, yang jumlahnya bervariasi dengan ukuran instance.
Entri log tidak berurutan. Anda dapat menggunakan
timestamp
nilainya untuk memesannya.Untuk melihat peristiwa terbaru, Anda mungkin harus meninjau semua file log kueri lambat.
File log diputar saat mencapai 100 MiB secara agregat. Pembatasan ini tidak dapat dikonfigurasi.
Atribut kueri masuk info
mode
Atribut berikut dicatat untuk kueri lambat ketika parameter cluster neptune_enable_slow_query_log
DB telah disetel keinfo
:
Grup | Atribut | Deskripsi |
---|---|---|
requestResponseMetadata |
|
Permintaan id kueri. |
|
Jenis permintaan, seperti HTTP atau WebSocket. |
|
|
Kode status respons kueri, seperti 200. |
|
|
Kelas pengecualian kesalahan dikembalikan setelah eksekusi kueri. |
|
queryStats |
|
String kueri. |
|
Sidik jari dari kueri. |
|
|
Bahasa kueri, seperti Gremlin, SPARQL atau. openCypher |
|
memoryStats |
|
Izin dialokasikan untuk kueri. |
|
Perkiraan memori yang digunakan oleh kueri selama eksekusi. |
|
queryTime |
|
Waktu mulai kueri (UTC). |
|
Kueri total waktu berjalan, dalam milidetik. |
|
|
Waktu penguraian kueri, dalam milidetik. |
|
|
Waktu tunggu Gremlin/SPARQL/openCypher antrian kueri, dalam milidetik |
|
|
Waktu eksekusi kueri, dalam milidetik. |
|
|
Waktu serialisasi kueri, dalam milidetik. |
|
statementCounters |
|
Jumlah pernyataan yang dipindai. |
|
Jumlah pernyataan yang ditulis. |
|
|
Jumlah pernyataan yang dihapus. |
|
transactionCounters |
|
Jumlah transaksi yang dilakukan. |
|
Jumlah transaksi digulirkan kembali. |
|
vertexCounters |
|
Jumlah simpul ditambahkan. |
|
Jumlah simpul dihapus. |
|
|
Jumlah properti simpul yang ditambahkan. |
|
|
Jumlah properti simpul dihapus. |
|
edgeCounters |
|
Jumlah tepi ditambahkan. |
|
Jumlah tepi dihapus. |
|
|
Jumlah properti tepi ditambahkan. |
|
|
Jumlah properti tepi dihapus. |
|
resultCache |
|
Hasil cache hit count. |
|
Hasil cache melewatkan hitungan. |
|
|
Hasil cache menempatkan hitungan. |
|
concurrentExecution |
|
Kueri paralel diterima dengan eksekusi kueri saat ini di awal. |
|
Kueri paralel berjalan dengan eksekusi kueri saat ini di awal. |
|
|
Kueri paralel diterima dengan eksekusi kueri saat ini di akhir. |
|
|
Kueri paralel berjalan dengan eksekusi kueri saat ini di akhir. |
|
queryBatch |
|
Ukuran Batch selama pemrosesan kueri. |
|
Ukuran batch selama serialisasi kueri. |
Atribut kueri masuk debug
mode
Ketika parameter cluster neptune_enable_slow_query_log
DB telah disetel kedebug
, atribut penghitung penyimpanan berikut dicatat selain atribut yang dicatat seperti dalam info
mode:
Atribut | Deskripsi |
---|---|
|
Pernyataan dipindai di semua indeks. |
|
Pernyataan dipindai dalam SPOG indeks. |
|
Pernyataan dipindai dalam POGS indeks. |
|
Pernyataan dipindai dalam GPSO indeks. |
|
Pernyataan dipindai dalam OSGP indeks. |
|
Pernyataan dipindai bersama dalam potongan. |
|
Pernyataan yang tersisa setelah pemfilteran posting setelah pemindaian. |
|
Pernyataan berbeda dipindai. |
|
Pernyataan dibaca setelah pemindaian pemfilteran posting di semua indeks. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam SPOG indeks. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam POGS indeks. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam GPSO indeks. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam OSGP indeks. |
|
Jumlah pencarian jalur akses. |
|
Jumlah pencarian jalur akses kunci yang sepenuhnya dibatasi. |
|
Jumlah jalur akses yang dicari dengan awalan. |
|
Jumlah pencarian yang memiliki 1 atau lebih catatan sebagai output. |
|
Jumlah pencarian yang tidak memiliki catatan sebagai output. |
|
Total catatan yang ditemukan dari semua pencarian. |
|
Jumlah pernyataan yang dimasukkan dalam semua indeks. |
|
Jumlah pernyataan yang diperbarui di semua indeks. |
|
Jumlah pernyataan yang dihapus di semua indeks. |
|
Jumlah predikat. |
|
Jumlah kamus yang dibaca dari nilai ke tabel ID. |
|
Jumlah kamus yang dibaca dari ID tabel nilai. |
|
Jumlah kamus menulis ke nilai ke tabel ID. |
|
Jumlah kamus menulis ke ID ke tabel nilai. |
|
Jumlah jumlah rentang di semua indeks. |
|
Jumlah kebuntuan dalam kueri. |
|
Jumlah sisipan kardinansi tunggal dilakukan. |
|
Jumlah pernyataan yang dihapus selama penyisipan kardinalitas tunggal. |
Contoh logging debug untuk kueri lambat
Kueri Gremlin berikut bisa memakan waktu lebih lama untuk dijalankan daripada ambang batas yang ditetapkan untuk kueri lambat:
gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()
Kemudian, jika pencatatan kueri lambat diaktifkan dalam mode debug, atribut berikut akan dicatat untuk kueri, dalam bentuk seperti ini:
{ "requestResponseMetadata": { "requestId": "5311e493-0e98-457e-9131-d250a2ce1e12", "requestType": "HTTP_GET", "responseStatusCode": 200 }, "queryStats": { "query": "gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()", "queryFingerprint": "g.V().has(string0,string1).repeat(__.out().simplePath()).until(__.has(string0,string2)).path().by(string0).limit(long0).fold()", "queryLanguage": "Gremlin" }, "memoryStats": { "allocatedPermits": 20, "approximateUsedMemoryBytes": 14838 }, "queryTimeStats": { "startTime": "23/02/2023 11:42:52.657", "overallRunTimeMs": 2249, "executionTimeMs": 2229, "serializationTimeMs": 13 }, "statementCounters": { "read": 69979 }, "transactionCounters": { "committed": 1 }, "concurrentExecutionStats": { "acceptedQueryCountAtStart": 1 }, "queryBatchStats": { "queryProcessingBatchSize": 1000, "querySerialisationBatchSize": 1000 }, "storageCounters": { "statementsScannedInAllIndexes": 69979, "statementsScannedSPOGIndex": 44936, "statementsScannedPOGSIndex": 4, "statementsScannedGPSOIndex": 25039, "statementsReadInAllIndexes": 68566, "statementsReadSPOGIndex": 43544, "statementsReadPOGSIndex": 2, "statementsReadGPSOIndex": 25020, "accessPathSearches": 27, "fullyBoundedAccessPathSearches": 27, "dictionaryReadsFromValueToIdTable": 10, "dictionaryReadsFromIdToValueTable": 17, "rangeCountsInAllIndexes": 4 } }