Tutorial ini menunjukkan cara membuat instance VM Compute Engine yang menjalankan SQL Server yang dioptimalkan untuk performa. Tutorial ini akan memandu Anda dalam membuat instance, lalu mengonfigurasi SQL Server untuk mendapatkan performa yang optimal di Google Cloud. Anda akan mempelajari sejumlah opsi konfigurasi yang tersedia untuk membantu Anda menyesuaikan performa sistem.
Tutorial ini menggunakan SQL Server Standard Edition 2022, sehingga tidak semua opsi konfigurasi yang ditampilkan dalam panduan ini berfungsi untuk semua orang, dan tidak semuanya memberikan manfaat performa yang signifikan untuk setiap workload.
Tujuan
- Menyiapkan instance dan disk Compute Engine.
- Mengonfigurasi sistem operasi Windows.
- Mengonfigurasi SQL Server.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
- Instance bermemori tinggi Compute Engine
- Penyimpanan Persistent Disk SSD Compute Engine
- Penyimpanan disk SSD Lokal Compute Engine
- Image SQL Server Standard yang telah dikonfigurasi sebelumnya
Kalkulator Harga dapat membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda. Link yang diberikan menunjukkan perkiraan biaya untuk produk-produk yang digunakan dalam tutorial ini, yang biayanya lebih dari 4 dolar (AS) per jam dan lebih dari 3.000 dolar per bulan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
Membuat VM Compute Engine dengan disk
Untuk membuat instance SQL Server berperforma tinggi, Anda harus terlebih dahulu membuat instance VM dengan SQL Server dan dua persistent disk.
Pertimbangan persistent disk
Guna memilih jenis persistent disk untuk VM Anda, tinjau pertimbangan berikut:
SSD lokal menyediakan lokasi berperforma tinggi untuk
tempdb
dan pagefile Windows.Ada beberapa pertimbangan penting yang perlu diperhatikan saat menggunakan SSD lokal. Saat Anda menonaktifkan instance dari Windows atau meresetnya menggunakan API, SSD lokal akan dihapus. Tindakan ini akan merender instance menjadi tidak dapat di-booting. Agar mesin dapat berjalan kembali, Anda harus melepas persistent disk, membuat instance baru menggunakan disk tersebut, lalu menentukan SSD lokal baru. Setelah memulai, Anda juga perlu memformat disk baru dan memulai ulang. Oleh karena itu, Anda tidak boleh menyimpan data penting secara permanen di SSD lokal, atau mematikan instance, kecuali jika Anda siap untuk membangun ulang instance tersebut.
Persistent Disk SSD menyediakan penyimpanan berperforma tinggi untuk file database.
Performa Persistent Disk didasarkan pada penghitungan yang menggunakan jumlah CPU dan ukuran disk. Dengan 32 vCPU dan disk berukuran 1 TB, performa akan mencapai puncaknya pada 40.000 operasi baca per detik (operasi) dan 30.000 operasi tulis. Total throughput berkelanjutan untuk pembacaan dan penulisan masing-masing adalah 800 MB per detik dan 400 MB per detik. Pengukuran ini mewakili penjumlahan dari semua persistent disk yang terpasang pada mesin virtual, termasuk drive
C:\
. Inilah sebabnya Anda harus membuat SSD lokal untuk memindahkan semua IOPS yang diperlukan untuk file paging,tempdb
, data staging, dan cadangan.
Untuk membaca tentang performa disk lebih lanjut, lihat Mengonfigurasi disk untuk memenuhi persyaratan performa.
Membuat VM Compute Engine dengan disk
Untuk membuat VM dengan SQL Server 2022 Standard yang telah diinstal sebelumnya di Windows Server 2022, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Create an instance.
Untuk Name, masukkan
ms-sql-server
.Di bagian Machine configuration, pilih General Destination, lalu lakukan hal berikut:
- Dalam daftar Series, klik N2.
- Dalam daftar Machine type, klik n2-highmem-16 (16vCPU, 128 GB memory).
Di bagian Boot disk, klik Change, lalu lakukan hal berikut:
- Di tab Public images, klik daftar Operating system, lalu pilih SQL Server on Windows Server.
- Di daftar Version, klik SQL Server 2022 Standard on Windows Server 2022 Datacenter.
- Pada daftar Boot disk type, klik Standard persistent disk.
- Di kolom Size (GB), tetapkan ukuran boot disk ke 50 GB.
- Untuk menyimpan konfigurasi boot disk, klik Select.
Luaskan bagian Advanced options, dan lakukan hal berikut:
- Perluas bagian Disks.
Untuk membuat disk lokal, klik Add Local SSD, lalu lakukan tindakan berikut:
- Dalam daftar Antarmuka, pilih protokol yang memenuhi persyaratan performa sistem Anda.
- Dalam daftar Disk capacity, pilih kapasitas disk yang mendukung ukuran file
tempdb
yang diperkirakan. - Untuk menyelesaikan pembuatan disk ini, klik Save.
Untuk membuat disk tambahan, klik Add New Disk.
- Jangan ubah kolom Name.
- Dalam daftar Disk source type, pilih Blank disk.
- Di daftar Disk type, pilih SSD persistent disk.
- Di kolom Size, masukkan ukuran disk yang dapat mengakomodasi ukuran database.
- Untuk menyelesaikan pembuatan disk kedua, klik Save.
Untuk membuat VM, klik Create.
Mengonfigurasi Windows
Setelah Anda memiliki instance yang berfungsi yang menjalankan SQL Server, hubungkan ke instance Anda dan konfigurasikan sistem operasi Windows. Setelah itu, Anda akan belajar mengonfigurasi SQL Server di bagian selanjutnya.
Menghubungkan ke instance
Di Konsol Google Cloud, buka halaman VM instances.
Di kolom Name, klik nama instance Anda,
ms-sql-server
.Di bagian atas halaman detail instance, klik tombol Set Windows Password.
Tentukan nama pengguna.
Klik Set untuk membuat kata sandi baru untuk instance Windows ini.
Simpan nama pengguna dan sandi sehingga Anda dapat login ke instance.
Hubungkan ke instance menggunakan RDP.
Menyiapkan volume disk
Buat dan format volume:
- Dari menu Start, telusuri "Computer Management", lalu buka.
- Di bagian Storage, pilih Disk Management.
- Saat diminta untuk menginisialisasi disk, setujui pilihan default, lalu klik Oke.
Buat partisi untuk disk SSD lokal:
Untuk menemukan disk SSD lokal, klik kanan disk, lalu pilih Properties. Nama properti disk SSD lokal akan menjadi
Google EphemeralDisk
untuk antarmuka SCSI ataunvme_card
untuk antarmuka NVMe. SSD lokal dan SSD persisten ditandai dengan memiliki partisiUnallocated
.Jika VM hanya berisi 1 drive SSD lokal, ikuti langkah-langkah berikut:
- Di bagian daftar drive disk, klik kanan disk SSD lokal berukuran 374,98 GB, lalu pilih New Simple Volume.
- Di layar Sambutan, klik Berikutnya untuk memulai wizard volume disk.
- Pada langkah Tentukan Ukuran Volume, biarkan ukuran volume pada nilai default dan klik Berikutnya untuk melanjutkan.
- Pada langkah Tetapkan Huruf Drive atau Jalur, pilih P: untuk huruf drive, lalu klik Berikutnya untuk melanjutkan.
Pada langkah Format Volume, ubah Allocation unit size ke 8192, lalu masukkan "pagefile" untuk Volume label. Klik Berikutnya untuk melanjutkan.
Klik Finish untuk menyelesaikan wizard volume disk.
Jika VM berisi beberapa drive SSD lokal, ikuti langkah-langkah berikut:
- Di bagian daftar drive disk, klik kanan disk SSD lokal pertama berukuran 374,98 GB, lalu pilih New Striped Volume.
- Di layar Sambutan, klik Berikutnya untuk memulai wizard volume disk.
Pada langkah Select Disks, tambahkan semua disk yang tersedia dengan ukuran 383.982 MB ke bagian Selected. Klik Berikutnya untuk melanjutkan.
Pada langkah Tetapkan Huruf Drive atau Jalur, pilih P: untuk huruf drive, lalu klik Berikutnya untuk melanjutkan.
Pada langkah Format Volume, ubah Allocation unit size ke 8192, lalu masukkan "pagefile" untuk Volume label. Klik Berikutnya untuk melanjutkan.
Klik Finish untuk menyelesaikan wizard volume disk.
Ulangi langkah-langkah sebelumnya untuk membuat Volume Sederhana Baru untuk disk SSD, dengan tiga perubahan berikut:
Pilih D: untuk huruf drive.
Tetapkan Allocation unit size ke
64k
.Untuk mengetahui detail tentang cara memilih ukuran unit alokasi, lihat Praktik terbaik untuk instance SQL Server.
Masukkan
sqldata
untuk Volume label.
Memindahkan file paging Windows
Setelah volume baru dibuat dan dipasang, pindahkan file paging Windows ke SSD lokal, yang akan mengosongkan IOPS Persistent Disk dan meningkatkan waktu akses memori virtual Anda.
- Dari menu Start, telusuri View advanced system settings, lalu buka dialog.
- Klik tab Advanced, lalu di bagian Performance, klik Settings.
- Di bagian Virtual memory, klik tombol Change.
- Hapus centang pada kotak Automatically manage paging file size for all drives. Sistem
seharusnya sudah menyiapkan file paging di drive
C:\
, dan Anda perlu memindahkannya. - Klik C: lalu klik tombol pilihan No paging file.
- Klik tombol Set.
- Untuk membuat file paging baru, klik drive P:, lalu klik tombol pilihan System managed size.
- Klik tombol Set.
Klik OK tiga kali untuk keluar dari properti sistem lanjutan.
Dukungan Microsoft telah menerbitkan tips tambahan untuk setelan memori virtual.
Menyetel profil daya
Setel profil daya ke High-Performance
, bukan Balanced
.
- Dari menu Start, telusuri "Choose a Power Plan", lalu buka opsi daya.
- Pilih tombol pilihan High Permormance.
- Keluar dari dialog.
Mengonfigurasi SQL Server
Gunakan SQL Server Management Studio untuk melakukan sebagian besar tugas administratif. Image yang telah dikonfigurasi sebelumnya untuk SQL Server dilengkapi dengan Management Studio yang sudah diinstal. Luncurkan Management Studio, lalu klik Connect untuk terhubung ke database default.
Memindahkan data dan file log
Image yang telah dikonfigurasi untuk SQL Server dilengkapi dengan semua yang diinstal di
drive C:\
, termasuk database sistem. Untuk mengoptimalkan penyiapan Anda,
pindahkan file tersebut ke drive D:\
baru yang Anda buat. Jangan lupa juga untuk membuat semua database baru di drive D:\
. Karena menggunakan SSD, Anda tidak perlu menyimpan file data dan file log di partisi
disk terpisah.
Ada dua cara untuk memindahkan penginstalan ke disk sekunder: menggunakan penginstal atau memindahkan file secara manual.
Menggunakan penginstal
Untuk menggunakan penginstal, jalankan c:\setup.exe
dan pilih jalur penginstalan baru di
disk sekunder Anda.
Memindahkan file secara manual
Pindahkan database sistem dan konfigurasikan SQL Server untuk menyimpan data dan file log pada volume yang sama:
- Buat folder baru bernama
D:\SQLData
. - Buka Jendela Perintah.
Masukkan perintah berikut untuk memberikan akses penuh ke
NT Service\MSSQLSERVER
:icacls D:\SQLData /Grant "NT Service\MSSQLServer:(OI)(CI)F"
Gunakan Management Studio dan panduan berikut untuk memindahkan database sistem Anda dan mengubah lokasi file default untuk database baru.
Jika Anda berencana menggunakan fitur Report Server, pindahkan file ReportServer dan ReportServerTempDB juga.
Setelah Anda memindahkan file database konfigurasi utama dan memulai ulang, Anda harus mengonfigurasi sistem agar mengarah ke lokasi baru untuk model dan database MSDB. Berikut adalah skrip helper untuk dijalankan di Management Studio:
ALTER DATABASE model MODIFY FILE ( NAME = modeldev , FILENAME = 'D:\SQLData\model.mdf' ) ALTER DATABASE model MODIFY FILE ( NAME = modellog , FILENAME = 'D:\SQLData\modellog.ldf' ) ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData , FILENAME = 'D:\SQLData\MSDBData.mdf' ) ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBlog , FILENAME = 'D:\SQLData\MSDBLog.ldf' )
Setelah Anda menjalankan perintah ini:
- Gunakan snap-in
services.msc
untuk menghentikan layanan database SQL Server. - Gunakan file explorer Windows untuk memindahkan file fisik dari drive
C:\
tempat databasemaster
berada ke direktoriD:\SQLData
. - Mulai layanan database SQL Server.
Menyetel izin sistem
Setelah memindahkan database sistem, ubah beberapa setelan tambahan, dimulai
dengan izin untuk akun pengguna Windows yang dibuat untuk menjalankan proses SQL
Server Anda, yang bernama NT Service\MSSQLSERVER
.
Memberikan izin Lock Pages in Memory
Izin Lock Pages in Memory
kebijakan grup mencegah Windows
memindahkan halaman dalam memori fisik ke memori virtual. Agar memori fisik
tetap kosong dan teratur, Windows mencoba menukar halaman lama yang jarang dimodifikasi ke
file paging memori virtual di disk.
SQL Server menyimpan informasi penting dalam memori, seperti struktur tabel,
rencana eksekusi, dan kueri yang disimpan dalam cache. Beberapa informasi ini jarang berubah, sehingga
menjadi target untuk file paging. Jika informasi ini dipindahkan ke
file paging, performa SQL Server dapat menurun. Memberikan izin Lock
Pages in Memory
kebijakan grup untuk akun layanan SQL Server akan mencegah
pertukaran ini.
Ikuti langkah-langkah berikut:
- Klik Start, lalu telusuri Edit Group Policy untuk membuka konsol.
- Perluas Local Computer Policy > Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment.
- Telusuri, lalu klik dua kali Lock pages in memory.
- Klik Add User or Group.
- Telusuri "NT Service\MSSQLSERVER".
- Jika Anda melihat beberapa nama, klik dua kali nama MSSQLSERVER.
- Klik OK dua kali.
- Biarkan konsol Group Policy Editor tetap terbuka.
Memberikan izin Perform volume maintenance tasks
Secara default, saat aplikasi meminta sepotong ruang disk dari Windows, sistem operasi akan mencarikan potongan ruang disk dengan ukuran yang tepat, lalu menghilangkan seluruh potongan disk, sebelum menyerahkannya kembali ke aplikasi tersebut. Karena SQL Server suka menambah file dan mengisi ruang disk, perilaku ini tidak optimal.
Terdapat API terpisah untuk mengalokasikan kapasitas disk ke aplikasi, yang sering disebut sebagai inisialisasi file instan. Sayangnya, setelan ini hanya
berfungsi untuk file data, tetapi Anda akan mempelajari pertumbuhan file log
di bagian mendatang. Inisialisasi file instan memerlukan akun layanan yang menjalankan proses SQL Server untuk memiliki izin kebijakan grup lain, yang disebut Perform volume
maintenance tasks
.
- Di Group Policy Editor, telusuri "Perform volume maintenance tasks".
- Tambahkan akun "NT Service\MSSQLSERVER" seperti yang Anda lakukan di bagian sebelumnya.
- Mulai ulang proses SQL Server untuk mengaktifkan kedua pengaturan.
Menyiapkan tempdb
Sebelumnya, praktik terbaik ini ditujukan untuk mengoptimalkan penggunaan CPU SQL Server
dengan membuat satu file tempdb
per CPU. Namun, karena jumlah CPU
terus bertambah dari waktu ke waktu, mengikuti panduan ini dapat menyebabkan
penurunan performa. Sebagai awal yang baik, gunakan 4 file tempdb
. Saat mengukur
performa sistem, dalam kasus yang jarang terjadi, Anda mungkin perlu meningkatkan
jumlah file tempdb
secara bertahap hingga maksimum 8.
Anda dapat menjalankan skrip Transact-SQL (T-SQL) di dalam SQL Server Management Studio untuk
memindahkan file tempdb
ke folder di drive `p:`.
- Buat direktori
p:\tempdb
. Berikan akses keamanan penuh ke akun pengguna "NT Service\MSSQLSERVER":
icacls p:\tempdb /Grant "NT Service\MSSQLServer:(OI)(CI)F"
Jalankan skrip berikut di dalam SQL Server Management Studio untuk memindahkan file data dan file log
tempdb
:USE master GO ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = 'p:\tempdb\tempdb.mdf') GO ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = 'p:\tempdb\templog.ldf') GO
Mulai ulang SQL Server.
Jalankan skrip berikut untuk mengubah ukuran file dan membuat tiga file data tambahan untuk
tempdb
baru.ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = 'p:\tempdb\tempdb.mdf', SIZE=8GB) ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = 'p:\tempdb\templog.ldf' , SIZE = 2GB) ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev1', FILENAME = 'p:\tempdb\tempdev1.ndf' , SIZE = 8GB, FILEGROWTH = 0); ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev2', FILENAME = 'p:\tempdb\tempdev2.ndf' , SIZE = 8GB, FILEGROWTH = 0); ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev3', FILENAME = 'p:\tempdb\tempdev3.ndf' , SIZE = 8GB, FILEGROWTH = 0); GO
Jika Anda menggunakan SQL Server 2016, ada 3 file
tempdb
tambahan yang harus dihapus setelah Anda melakukan langkah sebelumnya:ALTER DATABASE [tempdb] REMOVE FILE temp2; ALTER DATABASE [tempdb] REMOVE FILE temp3; ALTER DATABASE [tempdb] REMOVE FILE temp4;
Mulai ulang SQL Server.
Hapus file
model
,MSDB
,master
, dantempdb
dari lokasi asli di driveC:\
.
Anda berhasil memindahkan file tempdb
ke partisi SSD lokal. Pergerakan
ini memiliki beberapa risiko, yang sudah disebutkan sebelumnya, tetapi jika hilang karena
alasan apa pun, SQL Server akan membangun ulang file tempdb
. Memindahkan tempdb
akan memberi Anda performa tambahan untuk SSD lokal, dan mengurangi IOPS yang digunakan di persistent disk.
Setelan max degree of parallelism
Setelan default yang direkomendasikan untuk max degree of parallelism
adalah mencocokkannya
dengan jumlah CPU di server. Namun, ada kalanya saat menjalankan kueri dalam 16 atau 32 potongan paralel dan menggabungkan hasilnya jauh lebih lambat daripada menjalankannya dalam satu proses. Jika menggunakan instance 16 atau 32 core, Anda
dapat menetapkan nilai max degree of parallelism
ke 8 menggunakan T-SQL berikut:
USE master GO EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE WITH OVERRIDE GO EXEC sp_configure 'max degree of parallelism', 8 GO RECONFIGURE WITH OVERRIDE GO
Setelan max server memory
Setelan default ini memiliki jumlah yang sangat tinggi, tetapi Anda harus menetapkannya ke jumlah
megabyte RAM fisik yang tersedia, dikurangi beberapa gigabyte untuk sistem
operasi dan overhead. Contoh T-SQL berikut menyesuaikan max server memory
hingga
100 GB. Ubah nilai untuk menyesuaikan nilai agar cocok dengan instance Anda. Tinjau dokumen Opsi konfigurasi server memori server untuk mengetahui informasi selengkapnya.
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE WITH OVERRIDE GO exec sp_configure 'max server memory', 100000 GO RECONFIGURE WITH OVERRIDE GO
Penyelesaian
Mulai ulang instance sekali lagi untuk memastikan semua setelan baru dapat diterapkan. Sistem SQL Server Anda sudah dikonfigurasi dan Anda siap membuat database sendiri dan mulai menguji workload spesifik Anda. Tinjau panduan Praktik Terbaik SQL Server untuk mengetahui informasi selengkapnya tentang aktivitas operasional, pertimbangan performa lainnya, dan kemampuan Edisi Enterprise.
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus instance
Untuk menghapus instance Compute Engine:
- Di konsol Google Cloud, buka halaman Instance VM.
- Pilih kotak centang untuk instance yang ingin Anda hapus.
- Untuk menghapus instance, klik Tindakan lainnya, klik Hapus, lalu ikuti petunjuknya.
Menghapus persistent disk
Untuk menghapus Persistent Disk:
Di konsol Google Cloud, buka halaman Disks.
Pilih kotak centang di samping nama disk yang ingin Anda hapus.
Klik tombol Delete di bagian atas halaman.
Langkah berikutnya
- Uji beban instance SQL Server Anda.
- Tinjau panduan Praktik Terbaik SQL Server.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.