Halaman ini menjelaskan tips yang mungkin berguna jika Anda mengalami masalah saat menggunakan Compute Engine.
Untuk mendapatkan bantuan dalam memecahkan masalah tertentu, lihat salah satu bagian berikut:
- Untuk mengetahui langkah-langkah memecahkan masalah umum terkait instance, seperti jika instance Anda tidak dapat dimulai, lihat Memecahkan masalah saat membuat, mengupdate, dan menghapus VM.
- Untuk mengetahui langkah-langkah memecahkan masalah instance Windows, baca bagian Memecahkan masalah instance Windows.
Melihat format respons yang berbeda
Google Cloud CLI melakukan sebagian besar tindakannya dengan melakukan panggilan REST API. Hasil cetak yang cukup bagus hanya menampilkan informasi paling penting
yang ditampilkan oleh perintah tertentu. Untuk melihat format respons yang berbeda,
gunakan flag --format yang menampilkan respons dalam berbagai format output,
termasuk json, yaml, dan text. Misalnya, untuk melihat daftar instance di JSON, gunakan --format json:
gcloud compute instances list --format json
Melihat log komputasi gcloud
Gcloud CLI membuat dan menyimpan log dalam file log yang dapat Anda kueri, yang terletak di $HOME/.config/gcloud/logs. Untuk melihat file log terbaru pada
sistem operasi berbasis Linux, jalankan:
$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)
File log menyertakan informasi tentang semua permintaan dan respons yang dibuat menggunakan
alat gcloud CLI.
Untuk menghapus permanen file log yang dibuat oleh gcloud CLI secara otomatis, gunakan properti max_log_days, yang menetapkan jumlah hari maksimum untuk mempertahankan file log sebelum dihapus.
Setelan defaultnya adalah 30 hari. Jika Anda menetapkan nilai properti ini ke 0, tindakan ini akan menonaktifkan pembersihan sampah memori log dan tidak menghapus file log.
gcloud config set core/max_log_days DAYS_TO_RETAIN_LOGS
Nonaktifkan logging file gcloud CLI:
File $HOME/.config/gcloud/logs menggunakan ruang pada sistem file lokal.
Jumlah log yang dihasilkan dapat melebihi batas ruang pada sistem file lokal, yang dapat menyebabkan masalah seperti:
- Penggunaan ruang mencapai 100% pada instance.
- Gagal menjalankan perintah logging gcloud CLI karena tidak ada ruang tersisa untuk membuat file baru di sistem file lokal.
Untuk mengubah perilaku gcloud CLI dan menonaktifkan logging file, gunakan properti disable_file_logging:
gcloud config set core/disable_file_logging True
Memilih nama resource
Ketika memilih nama untuk resource Anda, perlu diingat bahwa nama mudah ini dapat dilihat di dasbor operasional dan dukungan dalam Compute Engine. Karena alasan ini, sebaiknya nama resource tidak mengekspos informasi sensitif apa pun.
Berkomunikasi ke internet
Instance memiliki akses internet langsung hanya jika kedua kondisi berikut terpenuhi:
- Instance ini memiliki alamat IP eksternal.
- Jaringan VPC instance menggunakan rute default yang hop berikutnya adalah gateway internet default.
Instance juga dapat mengakses internet secara tidak langsung dengan terhubung melalui Cloud NAT atau proxy berbasis instance. Untuk pertimbangan tambahan, termasuk konfigurasi aturan firewall, lihat Persyaratan akses internet.
Koneksi yang tidak ada aktivitas
Komponen jaringanGoogle Cloud tidak mempertahankan koneksi yang tidak aktif tanpa batas waktu. Untuk mencegah koneksi terputus, pertimbangkan cara komponen berikut menangani koneksi tidak ada aktivitas:
Entri tabel pelacakan koneksi Cloud Next Generation Firewall dihapus setelah aliran tidak ada aktivitas selama 10 menit.
Cloud NAT memiliki setelan waktu tunggu yang berlaku untuk koneksi yang tidak aktif untuk TCP, UDP, dan ICMP. Waktu tunggu TCP mencakup Waktu Tunggu Tidak Ada Aktivitas Koneksi yang Dibuat TCP, Waktu Tunggu Tidak Ada Aktivitas Koneksi Transitori TCP, dan Waktu Tunggu
TIME_WAITTCP.Load Balancer Jaringan passthrough melacak koneksi menggunakan aturannya sendiri. Untuk mengetahui informasi selengkapnya, lihat Distribusi traffic untuk Load Balancer Jaringan passthrough internal dan Distribusi traffic untuk Load Balancer Jaringan passthrough eksternal regional.
Untuk mencegah koneksi TCP yang tidak aktif terputus, Anda dapat mengonfigurasi TCP keepalive, yang menjaga koneksi tetap aktif dengan mengirimkan paket berkala (probe) untuk mereset waktu tunggu tidak ada aktivitas:
Pastikan aplikasi klien atau server membuat soket dengan opsi soket
SO_KEEPALIVE. Lihat dokumentasi aplikasi atau library software Anda untuk menentukan cara membuka soket dengan opsiSO_KEEPALIVE.Konfigurasi parameter keepalive TCP berikut:
Periode tidak aktif, yang menunjukkan waktu yang harus berlalu antara paket non-keepalive terakhir dan probe keepalive pertama dalam urutan.
Interval keepalive, yang merepresentasikan waktu di antara setiap pemeriksaan keepalive TCP.
Pemeriksaan keepalive, yang merepresentasikan jumlah total pemeriksaan keepalive TCP yang tidak dikonfirmasi yang dikirim dalam urutan sebelum koneksi dianggap terputus.
Aplikasi klien atau server dapat menyetel parameter keepalive TCP menggunakan
opsi soket seperti TCP_KEEPIDLE, TCP_KEEPINTVL, dan TCP_KEEPCNT, atau
Anda dapat menyetel parameter keepalive TCP untuk sistem operasi Anda.
Contoh berikut menunjukkan cara menyetel periode tidak aktif selama 60 detik untuk sistem operasi Anda:
Linux
Jalankan perintah berikut:
$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5Untuk memastikan setelan tetap bertahan saat mulai ulang, tambahkan setelan ke
file /etc/sysctl.conf. Parameter kernel ini berlaku untuk
IPv4 dan IPv6, meskipun memiliki ipv4 dalam namanya.
Lihat CARA Keepalive Linux TCP untuk informasi tambahan.
macOS
Jalankan perintah berikut:
$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000
Windows
Di jalur registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\, tambahkan setelan berikut menggunakan jenis data DWord, atau edit nilai ini jika sudah ada:
KeepAliveInterval: 1000 KeepAliveTime: 60000 TcpMaxDataRetransmissions: 10
Mengakses Compute Engine sebagai pengguna SSH yang berbeda
Secara default, alat command line gcloud compute menggunakan variabel $USER untuk menambahkan pengguna ke file /etc/passwd agar dapat terhubung ke instance menggunakan SSH. Anda dapat menentukan pengguna yang berbeda menggunakan
tanda --ssh-key-file PRIVATE_KEY_FILE saat menjalankan perintah
gcloud compute ssh. Contoh:
gcloud compute ssh example-instance --ssh-key-file my-private-key-file
Untuk mengetahui informasi selengkapnya, lihat
dokumentasi referensi gcloud.
Berinteraksi dengan konsol serial
Anda dapat mengaktifkan akses interaktif ke konsol serial instance agar dapat menghubungkan dan memecahkan masalah instance melalui konsol serial.
Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah menggunakan konsol serial.
Menghindari fragmentasi paket ke instance yang dibuat dari image kustom
Jaringan VPC memiliki unit transmisi maksimum (MTU) default sebesar 1460 byte untuk image Linux dan image Windows Server. Namun, MTU jaringan dapat diubah. Untuk mengetahui detailnya, lihat
ringkasan unit transmisi maksimum dalam dokumentasi
VPC.
Saat membuat aplikasi klien yang berkomunikasi dengan instance Compute Engine melalui soket UDP, Anda dapat menghindari fragmentasi jika Anda menetapkan ukuran maksimum datagram UDP menjadi 28 byte lebih kecil dari MTU jaringan. Misalnya, jika MTU jaringan adalah 1.460 byte, Anda dapat mengirim hingga 1.432 byte data UDP per paket tanpa fragmentasi. Jika MTU jaringan adalah 1.500 byte, Anda dapat mengirim hingga 1.472 byte data UDP tanpa fragmentasi. 28 byte digunakan untuk header paket IPv4 (20 byte) dan header datagram UDP (8 byte). Anda dapat menyetel MTU jaringan ke maksimum 8.896 byte.
Diagnostik performa dan CPU
Lonjakan latensi atau error yang tidak terduga dalam aplikasi Anda di platform CPU modern mungkin menunjukkan penguncian bus CPU. Masalah ini terjadi saat operasi atomik dilakukan pada memori yang tidak selaras.
Untuk mengidentifikasi masalah, tinjau output port serial Anda untuk menemukan entri log berikut: x86/split lock detection: #DB: <process_name>/<pid> took a bus_lock trap
at address: 0x<address>.
Output konsol serial memungkinkan deteksi peristiwa tingkat hardware, seperti perangkap penguncian bus CPU, yang menunjukkan operasi memori yang tidak selaras yang dapat menurunkan performa sistem.
Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah penguncian bus CPU.