Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan logging kueri lambat Amazon Neptune
Mengidentifikasi, men-debug, dan mengoptimalkan kueri yang berjalan lambat bisa jadi sulit. Ketika logging kueri lambat Neptunus diaktifkan, atribut dari semua kueri yang berjalan lama secara otomatis dicatat untuk membuat proses ini lebih mudah.
catatan
Slow-query logging diperkenalkan di rilis mesin Neptune 1.2.1.0.
Anda mengaktifkan logging kueri lambat menggunakan parameter cluster neptune_en able_slow_query_log DB. Secara default, parameter ini diatur kedisabled. Mengaturnya ke info atau mengaktifkan debug logging kueri lambat. Peng info aturan mencatat beberapa atribut berguna dari setiap kueri yang berjalan lambat, sedangkan debug pengaturan mencatat semua atribut yang tersedia.
Untuk menetapkan ambang batas untuk apa yang dianggap sebagai kueri berjalan lambat, gunakan parameter cluster DB neptune_slow_query_log_untuk menentukan jumlah milidetik setelah kueri yang berjalan dianggap lambat dan dicatat saat logging kueri lambat diaktifkan. Nilai default adalah 5000 milidetik (5 detik).
Anda dapat mengatur parameter cluster DB ini di Konsol Manajemen AWS, atau menggunakan perintah modify-db-cluster-parameter- AWS CLI group, atau fungsi manajemen. ModifyDBClusterParameterGroup
catatan
Parameter pencatatan kueri lambat bersifat dinamis, artinya mengubah nilainya tidak memerlukan atau menyebabkan restart cluster DB Anda.
Untuk melihat log kueri lambat di Konsol Manajemen AWS
Anda dapat melihat dan mengunduh log kueri lambat di Konsol Manajemen AWS, sebagai berikut:
Pada halaman Instans, pilih instance DB, lalu gulir ke bagian Log. Anda kemudian dapat memilih file log di sana dan kemudian memilih Unduh untuk mengunduhnya.
File yang dihasilkan oleh logging kueri lambat Neptunus
File log yang dihasilkan oleh logging kueri lambat di Neptunus memiliki karakteristik sebagai berikut:
File dikodekan sebagai UTF-8.
Kueri dan atributnya dicatat dalam bentuk JSON.
Atribut nol dan kosong tidak dicatat, kecuali untuk
queryTimedata.Log menjangkau beberapa file, yang jumlahnya bervariasi dengan ukuran instance.
Entri log tidak berurutan. Anda dapat menggunakan
timestampnilai-nilai mereka untuk memesannya.Untuk melihat peristiwa terbaru, Anda mungkin harus meninjau semua file log kueri lambat.
File log diputar ketika mencapai 100 MiB secara agregat. Pembatasan ini tidak dapat dikonfigurasi.
Atribut kueri yang masuk dalam mode info
Atribut berikut dicatat untuk kueri lambat ketika parameter cluster neptune_enable_slow_query_log DB telah disetel keinfo:
| Kelompok | Atribut | Deskripsi |
|---|---|---|
permintaan ResponseMetadata |
|
Minta id kueri. |
|
Jenis permintaan, seperti HTTP atau WebSocket. |
|
|
Kode status respons kueri, seperti 200. |
|
|
Kelas pengecualian dari kesalahan dikembalikan setelah eksekusi kueri. |
|
QueryStats |
|
String kueri. |
|
Sidik jari dari kueri. |
|
|
Bahasa kueri, seperti Gremlin, SPARQL atau OpenCypher. |
|
MemoriStats |
|
Izin dialokasikan untuk kueri. |
|
Perkiraan memori yang digunakan oleh kueri selama eksekusi. |
|
queryTimeStats |
|
Waktu mulai kueri (UTC). |
|
Total waktu berjalan kueri, 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. |
|
|
Otentikasi kueri dan waktu otorisasi, dalam milidetik. |
|
Penghitung Pernyataan |
|
Jumlah pernyataan yang dibaca. |
|
Jumlah pernyataan yang ditulis. |
|
|
Jumlah pernyataan yang dihapus. |
|
Penghitung Transaksi |
|
Jumlah transaksi yang dilakukan. |
|
Jumlah transaksi dibatalkan. |
|
VertexCounter |
|
Jumlah simpul ditambahkan. |
|
Jumlah simpul dihapus. |
|
|
Jumlah properti simpul ditambahkan. |
|
|
Jumlah properti simpul dihapus. |
|
EdgeCounters |
|
Jumlah tepi ditambahkan. |
|
Jumlah tepi dihapus. |
|
|
Jumlah properti tepi ditambahkan. |
|
|
Jumlah properti tepi dihapus. |
|
Cache Hasil |
|
Jumlah hit cache hasil. |
|
Hitungan kehilangan cache hasil. |
|
|
Hitungan pasang cache hasil. |
|
bersamaan ExecutionStats |
|
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 yang masuk dalam mode debug
Ketika parameter cluster neptune_enable_slow_query_log DB telah disetel kedebug, atribut penghitung penyimpanan berikut dicatat selain atribut yang dicatat sebagai dalam mode: info
| Atribut | Deskripsi |
|---|---|
|
Pernyataan dipindai di semua indeks. |
|
Pernyataan dipindai dalam indeks SPOG. |
|
Pernyataan dipindai dalam indeks POGS. |
|
Pernyataan dipindai dalam indeks GPSO. |
|
Pernyataan dipindai dalam indeks OSGP. |
|
Pernyataan dipindai bersama dalam potongan. |
|
Pernyataan tersisa setelah pemfilteran posting setelah pemindaian. |
|
Pernyataan berbeda dipindai. |
|
Pernyataan dibaca setelah memindai pemfilteran pos di semua indeks. |
|
Pernyataan dibaca setelah memindai pemfilteran pos dalam indeks SPOG. |
|
Pernyataan dibaca setelah memindai pemfilteran pos dalam indeks POGS. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks GPSO. |
|
Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks OSGP. |
|
Jumlah pencarian jalur akses. |
|
Jumlah pencarian jalur akses kunci yang sepenuhnya dibatasi. |
|
Jumlah jalur akses yang dicari berdasarkan 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 penghitungan rentang di semua indeks. |
|
Jumlah kebuntuan dalam kueri. |
|
Jumlah sisipan kardinitas tunggal yang dilakukan. |
|
Jumlah pernyataan yang dihapus selama penyisipan kardinalitas tunggal. |
|
Jumlah milidetik yang dihabiskan menunggu kunci bersama. |
|
Jumlah milidetik yang dihabiskan menunggu kunci eksklusif. |
Contoh pencatatan 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 logging 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, "sharedLocksWaitTimeMillis": 0, "exclusiveLocksWaitTimeMillis": 0 } }