Rumah > Tutorial sistem > LINUX > teks badan

Penalaan prestasi Linux~

WBOY
Lepaskan: 2024-02-12 15:30:04
ke hadapan
567 orang telah melayarinya

Penalaan prestasi Linux~

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.

1. Gambaran keseluruhan isu prestasi

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. Faktor yang mempengaruhi prestasi Linux

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:

  • Untuk aplikasi yang memerlukan operasi tulis yang kerap tetapi tidak memerlukan keselamatan data yang tinggi, cakera boleh dijadikan RAID 0
  • Untuk aplikasi dengan keselamatan data yang tinggi dan tiada keperluan khas untuk membaca dan menulis, cakera boleh dijadikan RAID 1;
  • Untuk aplikasi yang mempunyai keperluan tinggi untuk operasi baca tetapi tiada keperluan khas untuk operasi tulis dan mesti memastikan keselamatan data, anda boleh memilih RAID 5
  • Untuk aplikasi yang mempunyai keperluan membaca dan menulis yang tinggi serta keperluan keselamatan data yang tinggi, anda boleh memilih RAID10/01.

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

  • Jika memori kecil (memori fizikal kurang daripada 4GB), biasanya tetapkan saiz partition swap SWAP kepada 2 kali ganda memori
  • Jika memori fizikal lebih besar daripada 8GB dan kurang daripada 16GB, anda boleh menetapkan saiz SWAP sama dengan atau kurang sedikit daripada memori fizikal
  • Jika saiz memori lebih daripada 16GB, pada dasarnya, anda boleh menetapkan SWAP kepada 0, tetapi ini tidak disyorkan kerana menetapkan saiz SWAP tertentu masih mempunyai kesan tertentu.

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. Kakitangan yang terlibat dalam menganalisis prestasi sistem

3.1, kakitangan operasi dan penyelenggaraan Linux

Dalam proses pengoptimuman prestasi, kakitangan operasi dan penyelenggaraan Linux memikul tugas yang sangat penting.

  • Pertama sekali, kakitangan operasi dan penyelenggaraan Linux mesti memahami dan menguasai status operasi semasa sistem pengendalian, seperti beban sistem, status memori, status proses, beban CPU dan maklumat lain ini adalah asas dan asas untuk mengesan dan menilai prestasi sistem;
  • Kedua, kakitangan operasi dan penyelenggaraan Linux juga perlu menguasai maklumat perkakasan sistem, seperti cakera I/O, model CPU, saiz memori, lebar jalur kad rangkaian dan maklumat parameter lain, dan kemudian menilai secara menyeluruh penggunaan sumber sistem berdasarkan maklumat ini;
  • Ketiga, sebagai kakitangan operasi dan penyelenggaraan Linux, anda juga mesti memahami penggunaan sumber sistem oleh aplikasi Perkara yang lebih mendalam adalah untuk memahami kecekapan operasi aplikasi, seperti sama ada terdapat pepijat program, limpahan memori dan masalah lain. . Dengan menganalisis sistem Dengan memantau sumber, anda boleh mengetahui sama ada terdapat keabnormalan dalam aplikasi Jika memang terdapat masalah dengan aplikasi, masalah itu perlu dilaporkan kepada pembangun program dengan segera supaya program boleh diperbaiki atau dinaik taraf. .

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.

  • Pertama sekali, pereka bentuk seni bina sistem perlu menjejaki dan memahami kecekapan pelaksanaan program Jika terdapat masalah dengan kecekapan pelaksanaan, mereka perlu mengetahui di mana masalahnya
  • Kedua, jika benar-benar terdapat masalah dengan reka bentuk seni bina, maka seni bina sistem mesti dioptimumkan atau diperbaiki dengan segera dan reka bentuk seni bina sistem aplikasi yang lebih baik.

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:

  1. Pertama, kakitangan operasi dan penyelenggaraan Linux menyemak status keseluruhan sistem, terutamanya membuat pertimbangan komprehensif dari lima aspek: perkakasan sistem, peralatan rangkaian, konfigurasi sistem pengendalian, seni bina aplikasi dan kod program Jika didapati terdapat masalah dengan sistem perkakasan, peralatan rangkaian atau konfigurasi sistem pengendalian, kakitangan operasi dan penyelenggaraan Linux boleh menyelesaikan masalah secara bebas mengikut situasi;
  2. Sekiranya didapati masalah struktur program, ia perlu dikemukakan kepada arkitek program;
  3. Sekiranya didapati terdapat masalah pelaksanaan kod program, ia akan diserahkan kepada pembangun untuk pengoptimuman kod.
  4. Ini melengkapkan proses pengoptimuman prestasi sistem.

4. Ringkasan penalaan

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:

  1. Langkah pertama adalah untuk mengesan rangkaian Anda boleh menggunakan arahan ping untuk menyemak sama ada resolusi nama domain tapak web adalah normal Pada masa yang sama, sama ada kelewatan ping alamat pelayan adalah terlalu besar, dll. Dengan cara ini , pertama hapuskan kemungkinan masalah dalam rangkaian; jika tiada masalah dengan rangkaian
  2. Kemudian masukkan langkah kedua untuk menyemak penggunaan memori sistem Linux Kerana kelajuan tindak balas laman web adalah perlahan, ia biasanya berkaitan dengan memori Gunakan percuma, vmstat dan arahan lain untuk menentukan sama ada sumber memori kekurangan tiada masalah dengan sumber memori
  3. Masukkan langkah ketiga untuk menyemak status beban CPU sistem Anda boleh menentukan secara menyeluruh sama ada terdapat masalah lebihan pada CPU melalui output perintah sar, vmstat, atas dan lain-lain Jika tiada masalah dengan CPU
  4. Teruskan ke langkah keempat untuk memeriksa sama ada terdapat kesesakan dalam cakera I/O sistem Anda boleh menyemak prestasi baca dan tulis cakera melalui iostat, vmstat dan arahan lain Jika tiada masalah dengan cakera baca dan tulis. masalah prestasi sistem Linux itu sendiri pada dasarnya dihapuskan Akhirnya, anda perlu Apa yang dilakukannya ialah menyemak sama ada terdapat masalah dengan program itu sendiri. Melalui pemikiran seperti ini, melalui pengesanan lapisan demi lapisan dan penyelesaian masalah langkah demi langkah, masalah prestasi akan "tiada tempat untuk disembunyikan", dan ia akan menjadi sangat mudah untuk mencari pautan di mana masalah prestasi berlaku.

Atas ialah kandungan terperinci Penalaan prestasi Linux~. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lxlinux.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!