Salah satu klien saya telah menyebarkan produk kami db ke mesin Solaris yang sudah memiliki 3 contoh Oracle. Jadi, saat ini ada 4 contoh Oracle yang berjalan di mesin yang sama. Dan sekarang kami mengalami masalah kinerja.
Saya tidak memiliki akses ke mesin virtual atau mesin lainnya, dan semua alat yang saya miliki adalah alert.log, AWR, dan ADDM. Saya tahu ada sesuatu yang berhubungan dengan banyak contoh, tetapi saya tidak bisa membuktikannya.
Jadi, pertanyaan saya adalah, apakah Anda pernah mengalami situasi yang sama? Bagaimana saya harus menghadapinya? Bagaimana saya bisa mengidentifikasi penyebab masalah kinerja yang terkait dengan beberapa kejadian?
sumber
Menjalankan beberapa instance pada server yang sama dimungkinkan dan dalam beberapa kasus diperlukan. Oratab dirancang khusus untuk menangani pengelolaan beberapa instance. Dalam kasus di mana Anda memiliki beberapa aplikasi independen, mungkin lebih baik untuk memiliki instance untuk setiap aplikasi.
Memiliki memori yang cukup sangat penting. Oracle membangun SGA dalam memori bersama. Jika Anda tidak memiliki cukup memori, SGA atau proses akan mulai bertukar masuk dan keluar. Ini dikenal sebagai thrashing, dan menghasilkan penalti performa yang signifikan.
Dimungkinkan untuk menyetel instance untuk dijalankan dengan SGA yang lebih kecil. Oracle menyediakan alat untuk membantu menyempurnakan ukuran SGA. Jika salah satu instance memiliki SGA yang terlalu besar itu akan menghukum semua instance
Penggunaan lain untuk memori yang penting adalah ruang buffer. Ini bertindak sebagai cache sekunder, dan dapat menghilangkan I / O baca yang signifikan.
Menjalankan
sar
(dengan asumsi pangkalan Unix O / S) dapat memberi Anda diagnostik yang baik tentang di mana masalahnya. Kemungkinan masalah adalah swapping atau saturasi I / O disk. Menambahkan RAM kemungkinan akan mengatasi salah satu dari masalah ini.Disk I / O saturasi juga dapat ditangani dengan memindahkan beberapa tablespaces ke disk lain. Saya biasanya mengkonfigurasi Oracle sehingga I / O didistribusikan di disk sebanyak mungkin.
EDIT: Ini adalah beberapa kasus yang mungkin memerlukan contoh terpisah.
sumber
Sumber daya yang paling penting adalah RAM.
Setiap instance yang menjalankan Oracle mengalokasikan sejumlah RAM untuknya sendiri, ketika baru saja dimulai dan tidak sedang dimuat.
Kami menjalankan 10g dengan 10 dan 11g dengan 8 instance, tetapi ini adalah server pengembangan. Setelah restart OS, beberapa layanan Oracle tidak memulai secara otomatis dan harus dimulai secara manual: Oradim -startup -sid xxx.
Kami baru saja mulai menggunakan Manajemen Memori Otomatis, tetapi situasinya tetap berbeda dari SQL Server, di mana Anda dapat menambahkan basis data sebanyak yang diberikan oleh ruang disk.
Saya kasus Anda, dengan lebih banyak contoh pada satu mesin SGA untuk setiap contoh menjadi lebih kecil, sql kurang dikompilasi dapat di-cache dan mesin harus melakukan lebih banyak kompilasi sql, yang mengurangi kinerja.
Menambahkan RAM dapat membantu dalam situasi Anda.
sumber