Cari dan atasi 15 masalah prestasi

"Bottleneck" adalah istilah deskriptif yang luar biasa. Ini menggambarkan kekangan buatan pada beberapa bentuk komunikasi, interaksi, atau pemindahan maklumat. Dan itu mendorong seseorang untuk mempercayai bahawa beberapa kombinasi keberuntungan, wang, dan kepintaran yang ajaib dapat menghancurkan kemacetan itu dan membiarkan semua perkara baik mengalir.

Masalah dengan masalah prestasi adalah sukar untuk dikenalpasti. Adakah CPU? Rangkaian? Sedikit kod yang kikuk? Selalunya, pelakunya yang paling jelas sebenarnya adalah hilir dari sesuatu yang lebih besar dan lebih misterius. Dan apabila teka-teki prestasi tetap tidak dapat diselesaikan, pengurusan IT mungkin menghadapi pilihan Hobson antara mengakui kejahilan dan membuat alasan.

Nasib baik, seperti diagnosis perubatan atau kerja detektif, pengalaman membantu. Dengan memanfaatkan pengalaman dan percubaan selama bertahun-tahun, kami telah mengumpulkan 15 penyakit yang paling mungkin - dan mencadangkan rawatan - untuk membantu operasi IT anda mengesan dan memecahkan masalah prestasi.

Sebilangan masalah ini lebih jelas daripada yang lain. Kemungkinan besar, anda mempunyai sesuatu untuk diperkatakan mengenai beberapa spoiler licik anda sendiri (dan kami ingin mendengar cerita anda mengenai mereka). Tetapi dengan mengenal pasti pembunuh laju yang biasa di seluruh disiplin IT, kami berharap dapat memulakan usaha anda untuk membuat infrastruktur dengan prestasi tertinggi yang akan dibolehkan oleh sumber anda.

No. 1: Mungkin bukan pelayan

Peningkatan pelayan digunakan untuk membuat semua perbezaan, itulah sebabnya gergaji lama "Apabila semuanya gagal, buang lebih banyak perkakasan di dalamnya" berterusan hari ini. Itu masih berlaku dalam beberapa kes. Tetapi berapa banyak IT yang benar-benar berintensifkan komputasi? Secara amnya, anda dapat menjimatkan banyak masa dan wang dengan mengalihkan bola mata berbulu anda dari perkakasan pelayan. Bahagian bawah spektrum pelayan mempunyai kuasa kuda lebih dari cukup untuk menangani tugas seharian.

Inilah satu contoh konkrit. Pada rangkaian lebih dari 125 pengguna, pengawal domain Windows yang sudah tua nampaknya sudah siap untuk diganti. Pelayan ini pada mulanya menjalankan Windows 2000 Server dan dinaik taraf ke Windows Server 2003 beberapa waktu yang lalu, tetapi perkakasannya tetap tidak berubah. HP ML330 ini dengan CPU 1Ghz dan RAM 128MB berfungsi sebagai pengawal domain Direktori Aktif yang menjalankan semua peranan AD FSMO, menjalankan perkhidmatan DHCP dan DNS serta menjalankan IAS (Internet Authentication Services).

Molasses, bukan? Sebenarnya, ia berjaya dengan baik. Penggantinya adalah HP DL360 G4 dengan CPU 3Ghz, RAM 1GB, dan pemacu SCSI 72GB yang dicerminkan. Dengan menjalankan semua perkhidmatan tersebut, hampir tidak ada beban - dan perbezaan prestasi tidak dapat dilihat.

Sangat mudah untuk mengenal pasti aplikasi yang akan memakan semua CPU dan memori anda, tetapi mereka cenderung cukup khusus. Untuk hampir semua perkara lain, kotak komoditi yang rendah hati akan berjaya.

No. 2: Mempercepat pertanyaan tersebut

Anda boleh membuat aplikasi terindah di dunia, tetapi jika akses ke pelayan pangkalan data belakang membuat masalah, pengguna atau pelanggan akhir anda tidak akan senang. Oleh itu, sesuaikan pertanyaan pangkalan data tersebut dan memaksimumkan prestasi.

Tiga langkah asas dapat membantu anda meningkatkan prestasi pertanyaan. Pertama, kebanyakan produk pangkalan data merangkumi alat (seperti DB2 UDB untuk Penjelasan Visual iSeries) yang dapat membedah pertanyaan anda semasa pembangunan, memberikan maklum balas mengenai sintaks dan jangka masa perkiraan dari pelbagai bahagian penyataan SQL. Dengan menggunakan maklumat ini, cari bahagian pertanyaan terpanjang dan pecahkannya lebih jauh untuk melihat bagaimana anda boleh memendekkan masa pelaksanaan. Beberapa produk pangkalan data juga termasuk alat nasihat prestasi, seperti Monitor Diagnostik Pangkalan Data Automatik Oracle, yang memberikan cadangan (seperti menyarankan anda membuat indeks baru) untuk mempercepat pertanyaan.

Seterusnya, hidupkan alat pemantauan pangkalan data pada pelayan pementasan. Anda mungkin menggunakan produk pemantauan pihak ketiga, seperti NetVigil Fidelia, jika pangkalan data anda kekurangan sokongan pemantauan. Dengan monitor diaktifkan, hasilkan trafik terhadap pelayan pangkalan data menggunakan skrip ujian beban. Kaji data yang dikumpulkan untuk melihat bagaimana pertanyaan anda dilakukan semasa di muat; maklumat ini boleh membawa anda ke beberapa pertanyaan yang lebih lanjut.

Sekiranya anda mempunyai sumber pelayan yang mencukupi untuk meniru persekitaran pengeluaran beban kerja campuran anda dengan cukup dekat, anda boleh melakukan pusingan ketiga penalaan pertanyaan menggunakan alat pengujian beban, seperti OpenSTA, ditambah pemantauan pangkalan data untuk melihat bagaimana prestasi pertanyaan anda bersama dengan aplikasi lain yang melanda pangkalan data.

Apabila keadaan pangkalan data berubah - dengan pertumbuhan jumlah, penghapusan rekod, dan sebagainya - teruskan ujian dan penalaan. Ia sememangnya bernilai usaha.

No. 3: Berapa kos, perlindungan virus?

Perlindungan virus pada pelayan kritikal adalah keperluan asas, terutama untuk pelayan Windows. Namun, kesannya boleh menyakitkan. Beberapa pengimbas virus lebih menonjol daripada yang lain dan dapat mengurangkan prestasi pelayan dengan ketara.

Cuba jalankan ujian prestasi dengan dan tanpa pengimbas virus anda berjalan untuk menentukan kesannya. Sekiranya anda melihat peningkatan yang ketara tanpa pengimbas, inilah masanya untuk mencari vendor lain. Periksa juga ciri-ciri tertentu. Lumpuhkan imbasan masa nyata, dan kerap kali anda akan meningkatkan prestasi.

Tidak kira seberapa baik ditulis logik perniagaan anda, ketika anda menyebarkannya ke peringkat pertengahan, anda perlu menyesuaikan lingkungan waktu pelayan aplikasi untuk memaksimumkan prestasi.

Seperti stereo vintaj dengan banyak tombol untuk mengubah kualiti suara, pelayan aplikasi dari vendor seperti BEA, IBM, dan Oracle, menyediakan sekumpulan kawalan yang memusingkan. Caranya adalah dengan memutar tombol dengan cara yang betul, bergantung pada atribut aplikasi anda.

No. 4: Memaksimumkan tahap pertengahan

Tidak kira seberapa baik ditulis logik perniagaan anda, ketika anda menyebarkannya ke peringkat pertengahan, anda perlu menyesuaikan lingkungan waktu pelayan aplikasi untuk memaksimumkan prestasi.

Seperti stereo vintaj dengan banyak tombol untuk mengubah kualiti suara, pelayan aplikasi dari vendor seperti BEA, IBM, dan Oracle, menyediakan sekumpulan kawalan yang memusingkan. Caranya adalah dengan memutar tombol dengan cara yang betul, bergantung pada atribut aplikasi anda.

Sebagai contoh, jika aplikasi anda berat servlet, anda boleh mengaktifkan servlet caching. Begitu juga, jika aplikasi anda menggunakan banyak pernyataan SQL untuk menyokong pangkalan pengguna yang besar, anda ingin mengaktifkan penyataan cache yang telah disiapkan dan menetapkan ukuran maksimum cache sehingga cukup besar untuk menyokong beban kerja yang dimaksudkan.

Salah satu bidang utama di mana penalaan prestasi benar-benar dapat membantu adalah dengan kumpulan sambungan pangkalan data. Tetapkan sambungan minimum atau maksimum terlalu rendah dan anda pasti akan membuat masalah. Tetapkan terlalu tinggi dan anda mungkin akan melihat penurunan yang disebabkan oleh tambahan yang diperlukan untuk mengekalkan kumpulan sambungan yang lebih besar.

Sekiranya anda mengetahui beban kerja yang dimaksudkan, sesuaikan waktu proses pelayan aplikasi dengan menghidupkan alat pemantauan prestasi seperti Tivoli Performance Viewer IBM untuk WebSphere pada pelayan aplikasi pementasan. Hasilkan jumlah beban kerja yang anda harapkan dengan menggunakan alat penghasil beban, kemudian simpan hasil pemantauan dan mainkan semula untuk menganalisis tombol yang perlu disesuaikan.

Semasa dalam pengeluaran, adalah idea yang baik untuk menghidupkan pemantauan pasif rendah, untuk terus mengawasi waktu proses. Sekiranya beban kerja anda berubah dari masa ke masa, anda pasti ingin melakukan tinjauan prestasi baru.

No 5: Mengoptimumkan kesambungan rangkaian

Sebilangan besar pelayan perusahaan peringkat pertengahan kini mempunyai NIC dual gigabit - tetapi kebanyakan mereka tidak menggunakan paip kedua. Lebih-lebih lagi, harga suis gigabit telah jatuh ke bawah. Dengan pautan 120MBps ke pelayan fail anda, sebilangan pelanggan 100-megabit dapat mencapai akses fail kadar wayar secara serentak.

Walaupun tanpa pertukaran gigabit, ikatan NIC harus menjadi ruji utama. Paling mudah, mengikat dua NIC memberi anda kelebihan, tetapi menambahkan pengimbangan beban penghantaran, dan anda dapat menggandakan lebar jalur keluar dengan berkesan. Menggunakan kerjasama berbantukan suis akan memberi kesan yang sama terhadap lalu lintas masuk. Hampir setiap vendor pelayan utama menawarkan pemacu kerjasama NIC - dan ada utiliti pihak ketiga juga. Ini adalah peningkatan lebar jalur yang besar dan murah.

No. 6: Menamatkan pelayan Web anda

Adakah banyak yang dapat anda lakukan untuk menyesuaikan pelayan Web dan memaksimumkan prestasi? Sebenarnya, ada - terutamanya dengan menyesuaikan beberapa tetapan kritikal agar sesuai dengan lalu lintas pengeluaran yang anda harapkan.

Untuk pelayan Web yang sudah di produksi, mulakan dengan mengumpulkan statistik pelayan Web masa nyata (kebanyakan pelayan Web utama mempunyai fungsi tersebut. Kemudian beralih ke pementasan untuk menentukan parameter mana, jika ada, memerlukan penyesuaian.

Aktifkan alat pemantauan prestasi pelayan Web pada pelayan pementasan. Lakukan ujian beban dan periksa parameter yang relevan, seperti waktu respons, bait yang dikirim dan diterima, dan jumlah permintaan dan respons.

Parameter utama yang ingin anda tetapkan bergantung pada jumlah lalu lintas termasuk tetapan caching, threading, dan sambungan.

Dayakan cache untuk kandungan yang sering digunakan; beberapa pelayan Web membolehkan anda menyimpan cache secara dinamik berdasarkan penggunaan, sementara yang lain menuntut agar anda menentukan apa yang akan di-cache. Pastikan ukuran cache maksimum anda mencukupi untuk lalu lintas yang anda harapkan. Dan jika pelayan Web anda menyokong pecutan cache, aktifkan juga.

Untuk tetapan utas dan sambungan, tetapkan minimum dan maksimum sesuai dengan beban kerja yang diharapkan. Untuk sambungan, anda juga perlu menentukan jumlah maksimum permintaan per sambungan dan tetapan penghentian masa sambungan. Jangan tetapkan salah satu daripada nilai-nilai ini terlalu kecil atau terlalu besar, atau penurunan mungkin berlaku.

No. 7: Kesengsaraan WAN

Adakah anda perlu mendapatkan kembali lebar jalur WAN? Anda dapat menghabiskan sejumlah besar peralatan yang membentuk lalu lintas atau mesin cache dalam usaha untuk mengekang penggunaan lebar jalur WAN. Tetapi bagaimana jika ia bukan paip?

Perkara pertama yang pertama: Sebelum anda membeli sesuatu, dapatkan idea kukuh tentang lalu lintas yang melintasi WAN. Alat analisis rangkaian seperti Ethereal, ntop, Network Instrument's Observer, atau WildPacket's EtherPeek NX dapat memberi anda gambaran baru mengenai apa yang sebenarnya ada di wayar.

Anda mungkin mendapati bahawa masa replikasi untuk Direktori Aktif anda ditetapkan terlalu rendah dan hanya dengan mengkonfigurasi selang replikasi yang lebih lama dapat membuatkan anda mendapat ruang bernafas pada hari kerja. Adakah sebilangan pengguna di lokasi terpencil memetakan saham ke pelayan yang salah dan menarik fail besar ke seluruh WAN tanpa menyedarinya? Adakah sisa-sisa rangkaian IPX yang lama tidak berfungsi masih bergerak? Beberapa masalah WAN berpunca dari salah konfigurasi aplikasi, di mana lalu lintas diarahkan ke seluruh WAN ketika seharusnya tetap berada di kawasan setempat. Laporan berkala mengenai corak lalu lintas WAN akan menjimatkan wang dan sakit kepala.

No. 8: Mari bermain bagus

Sering kali, aplikasi, perkhidmatan Web, dan laman web dari pelbagai jabatan di seluruh perusahaan bersaing untuk mendapatkan sumber pelayan. Walaupun setiap komponen ini dapat disesuaikan sendiri, aplikasi dari jabatan lain yang juga menggunakan kluster pengeluaran yang sama mungkin mempunyai pertanyaan yang tidak diselaraskan atau masalah lain, yang seterusnya mempengaruhi pengguna atau pelanggan anda.

Dalam waktu dekat, semua yang dapat anda lakukan adalah bekerjasama dengan pentadbir sistem anda dan jabatan yang menghadapi masalah prestasi untuk mendapatkan penyelesaian bagi pengguna atau pelanggan anda. Jangka panjang, buat komuniti di semua jabatan yang menggunakan kelompok pengeluaran tempat objek anda dikerahkan. Bekerja di antara pasukan untuk memastikan bahawa ada dana yang mencukupi untuk persekitaran pementasan yang benar-benar mewakili persekitaran pengeluaran beban kerja campuran. Pada akhirnya, anda ingin mengembangkan satu siri penanda aras yang dapat digunakan untuk mengesahkan prestasi beban kerja campuran di persekitaran pementasan.

No. 9: Caching, membentuk, mengehadkan, oh!

Sekiranya WAN anda benar-benar kurang berukuran - dan anda tidak mampu menggunakan rangkaian relay bingkai jarak jauh - pembentukan lalu lintas dan caching dapat membantu melepaskan paip.

Konfigurasi membentuk lalu lintas lebih banyak seni daripada sains. Mengutamakan aplikasi selalunya lebih bersifat politik daripada teknikal tetapi mungkin mempunyai kesan yang luar biasa terhadap prestasi rangkaian yang dirasakan.

Caching adalah binatang yang berbeza sama sekali. Ia memerlukan lebih sedikit pekerjaan daripada membentuk lalu lintas, tetapi impaknya mungkin lebih kecil. Mesin caching menyimpan dan menyajikan salinan data tempatan yang sering diakses untuk mengurangkan lalu lintas WAN. Kelemahannya adalah bahawa kandungan dinamik tidak dapat disimpan dalam cache, jadi e-mel tidak akan menikmati prestasi yang sama.

No. 10: Menampal ramalan

Anda tiba di tempat kerja pada hari Isnin hanya untuk mengetahui bahawa sekumpulan desktop digantung atau prestasi aplikasi kritikal telah perlahan sehingga merangkak. Setelah menyiasat, anda menentukan bahawa patch yang digunakan pada hujung minggu adalah penyebabnya.

Itulah sebabnya anda memerlukan alat yang menyokong pemulangan tambalan. Lebih baik lagi, sertakan ujian patch sebagai sebahagian daripada strategi pengurusan tampalan anda. Pertama, anda mesti membuat persediaan aplikasi dan teknologi secara berkala di desktop dan pelayan. Sebilangan besar alat pengurusan sistem, seperti SMS Microsoft, mempunyai kemampuan untuk membuat inventori untuk anda secara automatik.

Seterusnya, replikasi aplikasi dan teknologi ke dalam lingkungan pementasan. Sekiranya perisian sistem operasi dan infrastruktur anda tidak menyertakan alat ujian tampalan, dapatkan alat pihak ketiga seperti FLEXnet AdminStudio atau Wise Package Studio.

Sebagai alternatif, anda boleh menulis beberapa skrip untuk menjalankan platform atau teknologi secara fungsional dengan tambalan terbaru yang sedang dimainkan. Anda perlu mengulangi senario ini (dan menyesuaikan skrip) ketika patch baru tiba dan ketika perubahan perisian dibuat.