Sistem pengendalian Linux ialah produk sumber terbuka, dan ia juga merupakan platform amalan dan aplikasi untuk perisian sumber terbuka. Di bawah platform ini, terdapat banyak sokongan perisian sumber terbuka, seperti apache, tomcat, mysql, php, dll. Konsep terbesar perisian sumber terbuka ialah kebebasan dan keterbukaan. Oleh itu, sebagai platform sumber terbuka, matlamat Linux adalah untuk mencapai prestasi aplikasi yang optimum pada kos terendah melalui sokongan perisian sumber terbuka ini. Apabila ia datang kepada isu prestasi, apa yang dicapai terutamanya ialah gabungan terbaik sistem pengendalian dan aplikasi Linux.
Prestasi sistem merujuk kepada keberkesanan, kestabilan dan kelajuan tindak balas sistem pengendalian dalam menyelesaikan tugasan. Pentadbir sistem Linux mungkin sering menghadapi masalah seperti ketidakstabilan sistem dan kelajuan tindak balas yang perlahan Contohnya, apabila membina perkhidmatan web di Linux, halaman web selalunya tidak boleh dibuka dan kelajuan pembukaannya perlahan Apabila menghadapi masalah ini, sesetengah orang akan Mengadu itu sistem Linux tidak bagus sebenarnya cetek. Apabila sistem pengendalian menyelesaikan tugas, ia berkait rapat dengan tetapan sistem sendiri, topologi rangkaian, peralatan penghalaan, dasar penghalaan, peralatan capaian, talian fizikal dan aspek lain Masalah dalam mana-mana pautan akan menjejaskan prestasi keseluruhan sistem. Oleh itu, apabila masalah berlaku dalam aplikasi Linux, penyiasatan komprehensif harus dijalankan daripada program aplikasi, sistem pengendalian, perkakasan pelayan, persekitaran rangkaian, dll., untuk mencari bahagian di mana masalah itu berlaku, dan kemudian menyelesaikannya secara berpusat.
Dari segi aplikasi, sistem pengendalian, perkakasan pelayan, persekitaran rangkaian, dan lain-lain, dua aspek yang memberi impak terbesar kepada prestasi ialah aplikasi dan sistem pengendalian, kerana masalah dalam kedua-dua aspek ini sukar untuk dikesan dan sangat tersembunyi. Selagi terdapat masalah dengan perkakasan atau rangkaian, ia biasanya boleh dikesan dengan segera. Perkara berikut terutamanya menerangkan idea penalaan prestasi untuk sistem pengendalian Isu khusus dalam aplikasi perlu ditangani secara terperinci.
Yang berikut memperkenalkan idea dan kaedah umum untuk mengoptimumkan Linux daripada empat aspek: faktor yang mempengaruhi prestasi Linux, orang yang terlibat dalam menganalisis prestasi, alat pengoptimuman prestasi sistem dan piawaian penilaian prestasi sistem.
2.1 sumber perkakasan sistem
1. CPU
CPU ialah asas untuk pengendalian sistem pengendalian yang stabil Kelajuan dan prestasi CPU sebahagian besarnya menentukan prestasi keseluruhan sistem Oleh itu, lebih banyak CPU dan lebih tinggi frekuensi utama, lebih baik prestasi pelayan akan menjadi. Tetapi itu tidak sepenuhnya benar.
Pada masa ini, kebanyakan CPU hanya boleh menjalankan satu thread pada masa yang sama Pemproses hyper-threading boleh menjalankan berbilang thread pada masa yang sama Oleh itu, ciri hyper-threading pemproses boleh digunakan untuk meningkatkan prestasi sistem. Di bawah sistem Linux, Hyper-Threading hanya disokong apabila menjalankan kernel SMP, tetapi lebih banyak CPU yang anda telah pasang, semakin kurang keuntungan prestasi yang anda akan perolehi daripada Hyper-Threading. Selain itu, kernel Linux akan mengiktiraf pemproses berbilang teras sebagai berbilang CPU berasingan Contohnya, dua CPU 4 teras akan dianggap sebagai 8 CPU teras tunggal di bawah sistem Lnux. Walau bagaimanapun, dari perspektif prestasi, dua CPU 4 teras dan 8 CPU teras tunggal tidak setara sepenuhnya Menurut kesimpulan ujian yang dibuat oleh jabatan berwibawa, prestasi keseluruhan yang pertama adalah 25% hingga 30% lebih rendah daripada yang kedua.
Aplikasi yang mungkin mengalami kesesakan CPU termasuk pelayan db, pelayan web dinamik, dsb. Untuk aplikasi sedemikian, konfigurasi dan prestasi CPU harus diberi keutamaan.
2. Ingatan
Saiz memori juga merupakan faktor penting yang mempengaruhi prestasi Linux Jika memori terlalu kecil, proses sistem akan disekat, dan aplikasi akan menjadi perlahan atau tidak bertindak balas jika memori terlalu besar, sumber akan dibazirkan. Sistem Linux menggunakan dua kaedah: memori fizikal dan memori maya Walaupun memori maya boleh mengurangkan kekurangan memori fizikal, jika ia mengambil terlalu banyak memori maya, prestasi aplikasi akan berkurangan dengan ketara daripada aplikasi, memori fizikal Ia mestilah cukup besar; tetapi memori fizikal yang terlalu besar akan menyebabkan pembaziran sumber memori Contohnya, pada sistem pengendalian Linux dengan pemproses 32-bit, sebarang memori fizikal yang melebihi 8GB akan dibazirkan. Oleh itu, untuk menggunakan memori yang lebih besar, adalah disyorkan untuk memasang sistem pengendalian 64-bit dan membolehkan sokongan kernel memori besar Linux.
Disebabkan oleh had julat pengalamatan pemproses, pada sistem pengendalian Linux 32-bit, satu proses aplikasi hanya boleh menggunakan maksimum memori 4GB Dengan cara ini, walaupun sistem mempunyai memori yang lebih besar, aplikasi tidak boleh ". enjoy" it. Penyelesaiannya ialah menggunakan pemproses 64-bit dan memasang sistem pengendalian 64-bit. Di bawah sistem pengendalian 64-bit, keperluan penggunaan memori bagi semua aplikasi boleh dipenuhi dengan hampir tiada sekatan.
Aplikasi yang mungkin mengalami kesesakan prestasi memori termasuk pelayan NOSQL, pelayan pangkalan data, pelayan cache, dll. Untuk aplikasi sedemikian, saiz memori harus diberi keutamaan.
3. Prestasi cakera I/O
Prestasi I/O cakera secara langsung mempengaruhi prestasi aplikasi Dalam aplikasi yang kerap membaca dan menulis, jika prestasi I/O cakera tidak dipenuhi, aplikasi akan terbantut. Nasib baik, cakera hari ini menggunakan banyak kaedah untuk meningkatkan prestasi I/O, seperti teknologi RAID cakera biasa.
Kumpulan cakera yang dibentuk oleh teknologi RAID adalah bersamaan dengan cakera keras yang besar Pengguna boleh melakukan operasi seperti pemformatan partition dan mencipta sistem fail di atasnya nisbah prestasi kumpulan cakera RAID Satu cakera keras adalah lebih tinggi, dan keselamatan data juga bertambah baik.
Mengikut kaedah gabungan cakera yang berbeza, RAID boleh dibahagikan kepada RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6, RAID7, RAID0+1, RAID10 dan tahap RAID yang biasa digunakan ialah RAID0, RAID1, RAID5, RAID0 +1 , berikut ialah pengenalan ringkas.
“
RAID 0: Meningkatkan prestasi cakera dan daya pemprosesan dengan melekatkan berbilang pemacu keras ke dalam kumpulan pemacu keras berkapasiti lebih besar. Kaedah ini berkos rendah dan memerlukan sekurang-kurangnya dua cakera, tetapi ia tidak mempunyai toleransi kesalahan dan fungsi pemulihan data, jadi ia hanya boleh digunakan dalam persekitaran yang tidak memerlukan keselamatan data yang tinggi.
RAID 1: Iaitu, pencerminan cakera Dengan mencerminkan data satu cakera ke cakera lain, ia memaksimumkan kebolehpercayaan dan kebolehbaikan data cakera Ia mempunyai keupayaan redundansi data yang tinggi, tetapi penggunaan cakera Kecekapan hanya 50%. oleh itu, kos adalah yang tertinggi, dan ia kebanyakannya digunakan dalam situasi di mana data penting disimpan.
RAID5: Ia menggunakan teknologi segmentasi cakera dan semakan pariti untuk meningkatkan kebolehpercayaan sistem RAID5 mempunyai kecekapan membaca yang tinggi dan kecekapan menulis purata, memerlukan sekurang-kurangnya 3 cakera. Membenarkan cakera gagal tanpa menjejaskan ketersediaan data.
RAID0+1: Menggabungkan teknologi RAID0 dan RAID1 menjadi RAID0+1, yang memerlukan sekurang-kurangnya 4 pemacu keras. Sebagai tambahan kepada data dalam kaedah ini yang diedarkan pada berbilang cakera, setiap cakera mempunyai cakera cermin sendiri, memberikan redundansi penuh, membenarkan satu kegagalan cakera tanpa menjejaskan ketersediaan data, dan mempunyai keupayaan membaca/menulis pantas.”
Dengan memahami prestasi setiap tahap RAID, anda boleh memilih tahap RAID yang sesuai dengan anda berdasarkan ciri aplikasi yang berbeza, dengan itu memastikan aplikasi mencapai prestasi cakera yang optimum.
4. Jalur lebar Internet
Pelbagai aplikasi di bawah Linux secara amnya berdasarkan rangkaian, jadi lebar jalur rangkaian juga merupakan faktor penting yang mempengaruhi prestasi Rangkaian berkelajuan rendah dan tidak stabil akan menyebabkan akses kepada aplikasi rangkaian disekat, manakala lebar jalur rangkaian yang stabil dan berkelajuan tinggi akan Ini. memastikan aplikasi berjalan lancar pada rangkaian. Nasib baik, rangkaian hari ini secara amnya adalah jalur lebar gigabit atau rangkaian gentian optik, dan kesan isu lebar jalur pada prestasi aplikasi semakin berkurangan.
2.2 Sumber berkaitan sistem pengendalian
Pengoptimuman prestasi berdasarkan sistem pengendalian juga berbilang muka dan boleh diukur dari beberapa aspek seperti pemasangan sistem, parameter kernel sistem, parameter rangkaian, sistem fail, dll, yang diperkenalkan secara ringkas di bawah.
1. Pengoptimuman pemasangan sistem
Pengoptimuman sistem boleh bermula daripada memasang sistem pengendalian Apabila memasang sistem Linux, pembahagian cakera dan peruntukan memori SWAP secara langsung akan menjejaskan prestasi pengendalian sistem pada masa hadapan. Sebagai contoh, peruntukan cakera boleh mengikut keperluan aplikasi:
Dengan cara ini, tahap RAID yang berbeza ditetapkan mengikut keperluan aplikasi yang berbeza, dan sistem dioptimumkan di bahagian bawah cakera.
Dengan penurunan harga memori dan kapasiti memori yang meningkat, tetapan memori maya SWAP tidak lagi memerlukan memori maya yang dipanggil dua kali ganda memori fizikal Namun, tetapan SWAP tidak boleh diabaikan
2. Pengoptimuman parameter kernel
Selepas pemasangan sistem selesai, kerja pengoptimuman belum selesai Seterusnya, parameter kernel sistem boleh dioptimumkan Walau bagaimanapun, pengoptimuman parameter kernel mesti dipertimbangkan bersama-sama dengan aplikasi yang digunakan dalam sistem.
Sebagai contoh, jika sistem menggunakan aplikasi pangkalan data Oracle, maka anda perlu mengkonfigurasi segmen memori kongsi sistem (kernel.shmmax, kernel.shmmni, kernel.shmall), semaphore sistem (kernel.sem) dan pemegang fail (fs .file- max) dan parameter lain jika anda menggunakan aplikasi Web, anda perlu mengoptimumkan parameter rangkaian mengikut ciri-ciri aplikasi Web, seperti mengubah suai kernel rangkaian seperti net.ipv4.ip_local_port_range, net.ipv4.tcp_tw_reuse , parameter net.core.somaxconn, dsb.
3. Pengoptimuman sistem fail
Pengoptimuman sistem fail juga merupakan fokus pengoptimuman sumber sistem Sistem fail pilihan di bawah Linux termasuk ext2, ext3, ReiserFS, ext4 dan xfs Pilih sistem fail yang berbeza mengikut aplikasi yang berbeza.
Sistem fail standard Linux bermula dari VFS, kemudian ext, kemudian ext2 Perlu dikatakan bahawa ext2 adalah sistem fail standard pada Linux dengan menambah log berdasarkan ext2, idea reka bentuk Di sana tidak banyak perubahan, semuanya berdasarkan konsep reka bentuk keluarga awal UNIX berdasarkan blok super dan inod.
Sistem fail XFS ialah sistem fail log lanjutan XFS menyediakan akses kependaman rendah, jalur lebar tinggi kepada data sistem fail dengan mengedarkan permintaan cakera, mencari data dan mengekalkan ketekalan cache Oleh itu, XFS sangat berskala dan sangat Teguh keupayaan pembalakan yang sangat baik, kebolehskalaan yang kuat, dan prestasi penulisan yang pantas.
Pada masa ini, server-side ext4 dan xfs adalah sistem fail arus perdana Cara memilih sistem fail yang sesuai perlu ditentukan berdasarkan ciri sistem fail dan keperluan perniagaan.
2.3, sumber perisian aplikasi
Pengoptimuman aplikasi sebenarnya adalah teras kepada keseluruhan projek pengoptimuman Jika aplikasi mempunyai BUG, maka walaupun semua aspek lain telah mencapai keadaan optimum, prestasi keseluruhan sistem aplikasi akan tetap rendah. pengoptimuman aplikasi adalah proses pengoptimuman prestasi Keutamaan utama, yang mengemukakan keperluan yang lebih tinggi untuk arkitek program dan pembangun program.
3.1, kakitangan operasi dan penyelenggaraan Linux
Dalam proses pengoptimuman prestasi, kakitangan operasi dan penyelenggaraan Linux memikul tugas yang sangat penting.
Pengoptimuman prestasi itu sendiri adalah proses yang rumit dan membosankan Hanya dengan memahami maklumat perkakasan sistem, maklumat rangkaian, maklumat konfigurasi sistem pengendalian dan maklumat aplikasi boleh kakitangan operasi dan penyelenggaraan Linux melakukan pengoptimuman prestasi pelayan yang disasarkan kakitangan mempunyai pengetahuan teori yang mencukupi, pengalaman praktikal yang kaya, dan minda untuk menganalisis masalah dengan teliti.
3.2. Pereka bentuk seni bina sistem
Jenis kedua kakitangan yang terlibat dalam pengoptimuman prestasi sistem ialah arkitek aplikasi. Jika kakitangan operasi dan penyelenggaraan Linux, selepas penghakiman yang komprehensif, mendapati bahawa prestasi dipengaruhi oleh kecekapan pelaksanaan aplikasi, maka pereka seni bina program mesti campur tangan tepat pada masanya untuk mendapatkan pemahaman yang mendalam tentang status berjalan program.
3.3, Pembangun Perisian
Langkah terakhir dalam pengoptimuman prestasi sistem melibatkan pembangun program Selepas kakitangan operasi dan penyelenggaraan Linux atau pereka seni bina menemui kesesakan program atau struktur, pembangun program mesti segera campur tangan untuk membuat pengubahsuaian program yang sepadan. Apabila mengubah suai atur cara, kecekapan pelaksanaan program harus digunakan sebagai penanda aras, logik program harus dipertingkatkan dan kod harus dioptimumkan dalam cara yang disasarkan. Sebagai contoh, kakitangan operasi dan penyelenggaraan Linux menemui pernyataan SQL dalam sistem yang menggunakan banyak sumber sistem Mereka menangkap pernyataan SQL yang dilaksanakan dan mendapati bahawa kecekapan pelaksanaan pernyataan SQL ini adalah disebabkan oleh pelaksanaan yang rendah kecekapan kod yang ditulis oleh pembangun , ini memerlukan maklum balas maklumat ini kepada pembangun Selepas menerima soalan ini, pembangun boleh melakukan pengoptimuman SQL yang disasarkan untuk mengoptimumkan kod program.
Seperti yang dapat dilihat daripada proses di atas, proses yang biasanya diikuti untuk pengoptimuman prestasi sistem ialah:
Pengoptimuman prestasi sistem ialah tugas yang meluas, membosankan dan jangka panjang Mencari punca masalah prestasi selalunya merupakan bahagian yang paling sukar Setelah punca masalah ditemui, masalah prestasi akan diselesaikan dengan mudah. Oleh itu, idea penyelesaian masalah menjadi sangat penting.
Sebagai contoh, untuk sistem laman web di bawah sistem Linux, pengguna melaporkan bahawa kelajuan capaian laman web adalah sangat perlahan dan kadangkala tidak boleh diakses.
Sebagai jawapan kepada soalan ini:
Atas ialah kandungan terperinci Penalaan prestasi Linux~. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!