Heim > System-Tutorial > LINUX > Hauptteil

Linux-Leistungsoptimierung ~

WBOY
Freigeben: 2024-02-12 15:30:04
nach vorne
700 Leute haben es durchsucht

Linux-Leistungsoptimierung ~

Das Linux-Betriebssystem ist ein Open-Source-Produkt und zugleich eine Übungs- und Anwendungsplattform für Open-Source-Software. Unter dieser Plattform gibt es unzählige Open-Source-Softwareunterstützungen wie Apache, Tomcat, MySQL, PHP usw. Das größte Konzept von Open-Source-Software ist Freiheit und Offenheit. Als Open-Source-Plattform ist es daher das Ziel von Linux, durch die Unterstützung dieser Open-Source-Software eine optimale Anwendungsleistung zu niedrigsten Kosten zu erreichen. Bei Leistungsproblemen wird vor allem die beste Kombination aus Linux-Betriebssystem und Anwendungen erreicht.

1. Übersicht über Leistungsprobleme

Systemleistung bezieht sich auf die Effektivität, Stabilität und Reaktionsgeschwindigkeit des Betriebssystems bei der Erledigung von Aufgaben. Linux-Systemadministratoren können häufig auf Probleme wie Systeminstabilität und langsame Reaktionsgeschwindigkeit stoßen. Beim Erstellen eines Webdienstes unter Linux können Webseiten häufig nicht geöffnet werden und die Öffnungsgeschwindigkeit ist langsam. Wenn diese Probleme auftreten, beschweren sich einige Leute darüber Das Linux-System ist nicht gut, es ist eigentlich oberflächlich. Wenn das Betriebssystem eine Aufgabe abschließt, hängt dies eng mit den systemeigenen Einstellungen, der Netzwerktopologie, der Routing-Ausrüstung, den Routing-Richtlinien, der Zugriffsausrüstung, den physischen Leitungen und anderen Aspekten zusammen. Probleme in jeder Verbindung wirken sich auf die Leistung des gesamten Systems aus. Wenn daher in einer Linux-Anwendung ein Problem auftritt, sollte eine umfassende Untersuchung des Anwendungsprogramms, des Betriebssystems, der Serverhardware, der Netzwerkumgebung usw. durchgeführt werden, um den Teil zu lokalisieren, in dem das Problem auftritt, und es dann zentral zu lösen.

In Bezug auf Anwendungen, Betriebssysteme, Serverhardware, Netzwerkumgebung usw. sind Anwendungen und Betriebssysteme die beiden Aspekte, die den größten Einfluss auf die Leistung haben, da Probleme in diesen beiden Aspekten schwer zu erkennen sind und stark verborgen bleiben. Solange es ein Problem mit der Hardware oder dem Netzwerk gibt, kann es in der Regel sofort lokalisiert werden. Im Folgenden werden hauptsächlich die Ideen zur Leistungsoptimierung im Betriebssystem erläutert. Spezifische Probleme in der Anwendung müssen im Detail behandelt werden.

Im Folgenden werden die allgemeinen Ideen und Methoden zur Optimierung von Linux unter vier Aspekten vorgestellt: Faktoren, die die Linux-Leistung beeinflussen, an der Leistungsanalyse beteiligte Personen, Tools zur Systemleistungsoptimierung und Standards zur Systemleistungsbewertung.

2. Faktoren, die die Linux-Leistung beeinflussen

2.1 Systemhardwareressourcen

1. CPU

CPU ist die Grundlage für den stabilen Betrieb des Betriebssystems. Die Geschwindigkeit und Leistung der CPU bestimmen in hohem Maße die Gesamtleistung des Systems. Je mehr CPUs und je höher die Hauptfrequenz, desto besser ist die Serverleistung wird sein. Aber das stimmt nicht ganz.

Derzeit können die meisten CPUs nur einen Thread gleichzeitig ausführen. Hyper-Thread-Prozessoren können daher mehrere Threads gleichzeitig ausführen. Daher kann die Hyper-Threading-Funktion des Prozessors verwendet werden, um die Systemleistung zu verbessern. Unter Linux-Systemen wird Hyper-Threading nur unterstützt, wenn SMP-Kernel ausgeführt werden. Je mehr CPUs Sie jedoch installiert haben, desto geringer ist der Leistungsgewinn, den Sie durch Hyper-Threading erzielen. Darüber hinaus erkennt der Linux-Kernel Multi-Core-Prozessoren als mehrere separate CPUs. Beispielsweise werden zwei 4-Core-CPUs im Lnux-System als 8 Single-Core-CPUs betrachtet. Aus Leistungssicht sind jedoch zwei 4-Core-CPUs und 8 Single-Core-CPUs nicht völlig gleichwertig. Den Testergebnissen maßgeblicher Abteilungen zufolge ist die Gesamtleistung der ersteren um 25 bis 30 % niedriger als die der letzteren.

Zu den Anwendungen, bei denen es zu CPU-Engpässen kommen kann, gehören Datenbankserver, dynamische Webserver usw. Bei solchen Anwendungen sollte der CPU-Konfiguration und -Leistung Vorrang eingeräumt werden.

2. Erinnerung

Die Größe des Speichers ist auch ein wichtiger Faktor, der sich auf die Leistung von Linux auswirkt. Wenn der Speicher zu klein ist, werden Systemprozesse blockiert und Anwendungen werden langsam oder reagieren nicht mehr, wenn der Speicher zu groß ist. Das Linux-System verwendet zwei Methoden: physischen Speicher und virtuellen Speicher. Wenn er jedoch zu viel virtuellen Speicher beansprucht, wird die Leistung der Anwendung erheblich verringert, um einen Hochleistungsbetrieb sicherzustellen Der physische Speicher der Anwendung muss groß genug sein. Bei einem Linux-Betriebssystem mit einem 32-Bit-Prozessor wird jedoch jeder physische Speicher verschwendet, der 8 GB überschreitet. Um größeren Speicher zu nutzen, wird daher empfohlen, ein 64-Bit-Betriebssystem zu installieren und die Kernel-Unterstützung für großen Speicher von Linux zu aktivieren.

Aufgrund der Einschränkung des Adressbereichs des Prozessors kann ein einzelner Anwendungsprozess auf einem 32-Bit-Linux-Betriebssystem nur maximal 4 GB Speicher verwenden. Auf diese Weise kann die Anwendung nicht „ Genießen Sie es. Die Lösung besteht darin, einen 64-Bit-Prozessor zu verwenden und ein 64-Bit-Betriebssystem zu installieren. Unter einem 64-Bit-Betriebssystem kann der Speicherbedarf aller Anwendungen nahezu ohne Einschränkungen gedeckt werden.

Zu den Anwendungen, bei denen es zu Engpässen bei der Speicherleistung kommen kann, gehören NOSQL-Server, Datenbankserver, Cache-Server usw. Bei solchen Anwendungen sollte der Speichergröße Priorität eingeräumt werden.

3. Festplatten-I/O-Leistung

Die Festplatten-E/A-Leistung wirkt sich direkt auf die Anwendungsleistung aus. Wenn die Festplatten-E/A-Leistung bei einer Anwendung mit häufigen Lese- und Schreibvorgängen nicht erreicht wird, stagniert die Anwendung. Glücklicherweise nutzen heutige Festplatten viele Methoden zur Verbesserung der E/A-Leistung, wie beispielsweise die gängige Festplatten-RAID-Technologie.
Eine durch RAID-Technologie gebildete Festplattengruppe entspricht einer großen Festplatte. Benutzer können darauf Operationen wie Partitionsformatierung und Erstellung von Dateisystemen durchführen. Der einzige Unterschied besteht in der E/A Das Leistungsverhältnis der RAID-Festplattengruppe ist viel höher und die Datensicherheit wird ebenfalls erheblich verbessert.

Je nach verschiedenen Festplattenkombinationsmethoden kann RAID in RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6, RAID7, RAID0+1, RAID10 und andere häufig verwendete RAID-Level unterteilt werden: RAID0, RAID1, RAID5, RAID0 +1. , hier ist eine kurze Einführung.

RAID 0: Verbessert die Festplattenleistung und den Durchsatz, indem mehrere Festplatten zu einer Festplattengruppe mit größerer Kapazität zusammengefasst werden. Diese Methode ist kostengünstig und erfordert mindestens zwei Festplatten, verfügt jedoch nicht über Fehlertoleranz- und Datenwiederherstellungsfunktionen und kann daher nur in Umgebungen verwendet werden, die keine hohe Datensicherheit erfordern.
RAID 1: Durch die Spiegelung der Daten einer Festplatte auf eine andere Festplatte wird die Zuverlässigkeit und Reparaturfähigkeit der Festplattendaten maximiert. Die Festplattenauslastung beträgt jedoch nur 50 %. Daher sind die Kosten am höchsten und es wird hauptsächlich in Situationen verwendet, in denen wichtige Daten gespeichert werden.
RAID5: Es nutzt Festplattensegmentierungs- und Paritätsprüfungstechnologie, um die Systemzuverlässigkeit zu verbessern. RAID5 verfügt über eine hohe Leseeffizienz und durchschnittliche Schreibeffizienz und erfordert mindestens 3 Festplatten. Ermöglicht den Ausfall einer Festplatte, ohne die Datenverfügbarkeit zu beeinträchtigen.
RAID0+1: Die Kombination der RAID0- und RAID1-Technologie ergibt RAID0+1, was mindestens 4 Festplatten erfordert. Zusätzlich zur Verteilung der Daten bei dieser Methode auf mehrere Festplatten verfügt jede Festplatte über eine eigene Spiegelfestplatte, die vollständige Redundanz bietet, den Ausfall einer Festplatte ohne Beeinträchtigung der Datenverfügbarkeit zulässt und über schnelle Lese-/Schreibfunktionen verfügt.

Wenn Sie die Leistung jedes RAID-Levels verstehen, können Sie basierend auf den unterschiedlichen Eigenschaften der Anwendung das RAID-Level auswählen, das zu Ihnen passt, und so sicherstellen, dass die Anwendung eine optimale Festplattenleistung erreicht.

4. Internet-Breitband

Verschiedene Anwendungen unter Linux basieren im Allgemeinen auf dem Netzwerk, daher ist die Netzwerkbandbreite auch ein wichtiger Faktor, der sich auf die Leistung auswirkt. Ein langsames, instabiles Netzwerk führt dazu, dass der Netzwerkanwendungszugriff blockiert wird, während eine stabile und schnelle Netzwerkbandbreite dies bewirkt sorgt dafür, dass Anwendungen im Netzwerk reibungslos laufen. Glücklicherweise handelt es sich bei den heutigen Netzwerken im Allgemeinen um Gigabit-Bandbreiten- oder Glasfasernetzwerke, und die Auswirkungen von Bandbreitenproblemen auf die Anwendungsleistung nehmen allmählich ab.

2.2 Betriebssystembezogene Ressourcen

Die Leistungsoptimierung basierend auf dem Betriebssystem ist ebenfalls vielfältig und kann anhand verschiedener Aspekte wie Systeminstallation, Systemkernelparameter, Netzwerkparameter, Dateisystem usw. gemessen werden, die im Folgenden kurz vorgestellt werden.

1. Optimierung der Systeminstallation

Die Systemoptimierung kann mit der Installation des Betriebssystems beginnen. Bei der Installation eines Linux-Systems wirken sich die Festplattenpartitionierung und die SWAP-Speicherzuweisung direkt auf die zukünftige Betriebsleistung des Systems aus. Beispielsweise kann die Festplattenzuweisung den Anforderungen der Anwendung folgen:

  • Für Anwendungen, die häufige Schreibvorgänge, aber geringe Anforderungen an die Datensicherheit erfordern, kann die Festplatte in RAID 0 umgewandelt werden Für Anwendungen mit hoher Datensicherheit und keinen besonderen Anforderungen an das Lesen und Schreiben kann die Festplatte in RAID 1;
  • umgewandelt werden Für Anwendungen, die hohe Anforderungen an Lesevorgänge, aber keine besonderen Anforderungen an Schreibvorgänge haben und die Datensicherheit gewährleisten möchten, können Sie RAID 5 wählen;
  • Für Anwendungen mit hohen Lese- und Schreibanforderungen und hohen Anforderungen an die Datensicherheit können Sie RAID10/01 wählen.
  • Auf diese Weise werden je nach Anwendungsanforderungen unterschiedliche RAID-Level eingestellt und das System am unteren Rand der Festplatte optimiert.
  • Mit dem Rückgang der Speicherpreise und der zunehmenden Speicherkapazität erfordert die Einstellung des virtuellen Speichers nicht mehr das Doppelte des physischen Speichers. Die Einstellung von SWAP kann jedoch erfahrungsgemäß nicht ignoriert werden:
  • Wenn der Speicher klein ist (der physische Speicher beträgt weniger als 4 GB), stellen Sie die SWAP-Swap-Partitionsgröße im Allgemeinen auf das Zweifache des Speichers ein
  • Wenn der physische Speicher größer als 8 GB und weniger als 16 GB ist, können Sie die SWAP-Größe so einstellen, dass sie dem physischen Speicher entspricht oder geringfügig darunter liegt
  • Wenn die Speichergröße mehr als 16 GB beträgt, können Sie SWAP grundsätzlich auf 0 setzen. Dies wird jedoch nicht empfohlen, da das Festlegen einer bestimmten SWAP-Größe immer noch einen gewissen Effekt hat.

2. Optimierung der Kernelparameter

Nach Abschluss der Systeminstallation ist die Optimierungsarbeit noch nicht abgeschlossen. Die Optimierung der Kernelparameter muss jedoch in Verbindung mit den im System bereitgestellten Anwendungen berücksichtigt werden.

Wenn das System beispielsweise eine Oracle-Datenbankanwendung bereitstellt, müssen Sie das System-Shared-Memory-Segment (kernel.shmmax, kernel.shmmni, kernel.shmall), das System-Semaphor (kernel.sem) und das Datei-Handle (fs) konfigurieren .file-max) und andere Parameter; wenn Sie eine Webanwendung bereitstellen, müssen Sie die Netzwerkparameter entsprechend den Eigenschaften der Webanwendung optimieren, z. B. durch Ändern von Netzwerkkernen wie net.ipv4.ip_local_port_range, net.ipv4.tcp_tw_reuse , net.core.somaxconn usw. Parameter.

3. Optimierung des Dateisystems

Die Optimierung des Dateisystems ist auch ein Schwerpunkt der Systemressourcenoptimierung. Zu den optionalen Dateisystemen unter Linux gehören ext2, ext3, ReiserFS, ext4 und xfs. Wählen Sie je nach Anwendung unterschiedliche Dateisysteme.

Das Linux-Standarddateisystem beginnt mit VFS, dann mit ext2. Es sollte gesagt werden, dass ext2 das Standarddateisystem unter Linux ist, das durch Hinzufügen von Protokollen zu ext2 entsteht Es gibt nicht viele Änderungen, sie basieren alle auf den Designkonzepten der frühen UNIX-Familie, die auf Superblöcken und Inodes basieren.

Das XFS-Dateisystem ist ein fortschrittliches Protokolldateisystem, das den Zugriff auf Dateisystemdaten mit geringer Latenz und hoher Bandbreite ermöglicht, indem es Festplattenanforderungen verteilt, Daten lokalisiert und die Cache-Konsistenz aufrechterhält hervorragende Protokollierungsfunktionen, starke Skalierbarkeit und schnelle Schreibleistung.

Derzeit sind serverseitiges ext4 und xfs die gängigen Dateisysteme. Wie ein geeignetes Dateisystem ausgewählt wird, muss anhand der Eigenschaften des Dateisystems und der Anforderungen des Unternehmens bestimmt werden.

2.3, Ressourcen für Anwendungssoftware

Die Optimierung der Anwendung ist eigentlich der Kern des gesamten Optimierungsprojekts. Selbst wenn alle anderen Aspekte den optimalen Zustand erreicht haben, ist die Leistung des gesamten Anwendungssystems immer noch gering. Bei der Optimierung der Anwendung steht ein Performance-Optimierungsprozess an erster Stelle, der höhere Anforderungen an Programmarchitekten und Programmentwickler stellt.

3. Personal, das an der Analyse der Systemleistung beteiligt ist

3.1, Linux-Betriebs- und Wartungspersonal

Im Prozess der Leistungsoptimierung übernimmt das Linux-Betriebs- und Wartungspersonal sehr wichtige Aufgaben.

  • Zunächst muss das Linux-Betriebs- und Wartungspersonal den aktuellen Betriebsstatus des Betriebssystems verstehen und beherrschen, z. B. Systemauslastung, Speicherstatus, Prozessstatus, CPU-Auslastung und andere Informationen. Diese Informationen sind die Grundlage und Grundlage für die Erkennung und Beurteilung Systemleistung;
  • Zweitens muss das Linux-Betriebs- und Wartungspersonal auch die Hardwareinformationen des Systems beherrschen, wie z. B. Festplatten-E/A, CPU-Modell, Speichergröße, Netzwerkkartenbandbreite und andere Parameterinformationen, und dann die Nutzung der Systemressourcen basierend darauf umfassend bewerten diese Informationen;
  • Drittens müssen Sie als Linux-Betriebs- und Wartungspersonal auch die Nutzung der Systemressourcen durch die Anwendung verstehen. Ein detaillierterer Punkt besteht darin, die Betriebseffizienz der Anwendung zu verstehen, z. B. ob Programmfehler, Speicherüberläufe und andere Probleme vorliegen Durch die Analyse der Systemressourcen können Sie feststellen, ob es tatsächlich ein Problem mit der Anwendung gibt, das Problem muss sofort dem Programmentwickler gemeldet werden, damit das Programm verbessert oder aktualisiert werden kann .

Die Leistungsoptimierung selbst ist ein komplexer und langwieriger Prozess. Nur wenn das Linux-Betriebs- und Wartungspersonal die Systemhardwareinformationen, Netzwerkinformationen, Betriebssystemkonfigurationsinformationen und Anwendungsinformationen versteht, kann es eine gezielte Optimierung der Serverleistung durchführen, die den Linux-Betrieb erfordert Das Wartungspersonal verfügt über ausreichende theoretische Kenntnisse, umfangreiche praktische Erfahrung und den Verstand, Probleme sorgfältig zu analysieren.

3.2. Systemarchitekturdesigner

Die zweite Art von Personal, das an der Optimierung der Systemleistung beteiligt ist, ist der Anwendungsarchitekt. Wenn das Linux-Betriebs- und Wartungspersonal nach umfassender Beurteilung feststellt, dass es die Ausführungseffizienz der Anwendung ist, die sich auf die Leistung auswirkt, müssen Programmarchitekturdesigner rechtzeitig eingreifen, um ein tiefgreifendes Verständnis des Betriebsstatus des Programms zu erlangen.

  • Zunächst müssen Systemarchitekturdesigner die Ausführungseffizienz des Programms verfolgen und verstehen. Wenn es ein Problem mit der Ausführungseffizienz gibt, müssen sie herausfinden, wo das Problem liegt Zweitens: Wenn es wirklich ein Problem mit dem Architekturdesign gibt, muss die Systemarchitektur sofort optimiert oder verbessert und eine bessere Anwendungssystemarchitektur entworfen werden.
3.3, Softwareentwickler

Der letzte Schritt bei der Optimierung der Systemleistung betrifft Programmentwickler. Nachdem Linux-Betriebs- und Wartungspersonal oder Architekturdesigner Programm- oder Strukturengpässe festgestellt haben, müssen Programmentwickler sofort eingreifen, um entsprechende Programmänderungen vorzunehmen. Bei der Änderung eines Programms sollte die Ausführungseffizienz des Programms als Maßstab dienen, die Logik des Programms verbessert und der Code gezielt optimiert werden. Das Linux-Betriebs- und Wartungspersonal fand beispielsweise eine SQL-Anweisung im System, die viele Systemressourcen verbrauchte. Sie erfassten die ausgeführte SQL-Anweisung und stellten fest, dass die Ausführungseffizienz dieser SQL-Anweisung zu schlecht war Effizienz des vom Entwickler geschriebenen Codes, dazu ist eine Rückmeldung dieser Informationen an den Entwickler erforderlich. Nach Erhalt dieser Frage kann der Entwickler eine gezielte SQL-Optimierung durchführen, um den Programmcode zu optimieren.

Wie aus dem obigen Prozess ersichtlich ist, wird im Allgemeinen der Prozess zur Optimierung der Systemleistung wie folgt befolgt:

Zunächst überprüft das Linux-Betriebs- und Wartungspersonal den Gesamtstatus des Systems und trifft dabei vor allem umfassende Beurteilungen anhand von fünf Aspekten: Systemhardware, Netzwerkausrüstung, Betriebssystemkonfiguration, Anwendungsarchitektur und Programmcode Hardware, Netzwerkausrüstung oder Betriebssystemkonfiguration, Linux-Betriebs- und Wartungspersonal kann das Problem je nach Situation selbstständig lösen;
  1. Wenn festgestellt wird, dass es sich um ein Programmstrukturproblem handelt, muss es dem Programmarchitekten vorgelegt werden;
  2. Wenn festgestellt wird, dass ein Problem bei der Ausführung des Programmcodes vorliegt, wird es zur Codeoptimierung an den Entwickler übergeben.
  3. Damit ist ein Systemleistungsoptimierungsprozess abgeschlossen.

4. Tuning-Zusammenfassung Die Optimierung der Systemleistung ist eine umfangreiche, mühsame und langfristige Aufgabe. Die Suche nach der Ursache von Leistungsproblemen ist oft der schwierigste Teil. Sobald die Ursache des Problems gefunden ist, lässt sich das Leistungsproblem leicht lösen. Daher werden Ideen zur Problemlösung sehr wichtig.

Bei einem Website-System unter dem Linux-System berichteten Benutzer beispielsweise, dass die Website-Zugriffsgeschwindigkeit sehr langsam ist und manchmal nicht darauf zugegriffen werden kann.

Als Antwort auf diese Frage:

Der erste Schritt besteht darin, das Netzwerk zu erkennen. Mit dem Ping-Befehl können Sie überprüfen, ob die Domänennamenauflösung der Website normal ist und ob die Verzögerung beim Ping der Serveradresse zu groß ist , können Sie zunächst mögliche Probleme im Netzwerk beseitigen; wenn kein Problem mit dem Netzwerk vorliegt
  1. Geben Sie dann den zweiten Schritt ein, um die Speichernutzung des Linux-Systems zu überprüfen. Da die Reaktionsgeschwindigkeit der Website langsam ist, hängt dies im Allgemeinen mit den Befehlen free, vmstat und anderen zusammen, um festzustellen, ob die Speicherressourcen knapp sind Es gibt kein Problem mit den Speicherressourcen
  2. Geben Sie den dritten Schritt ein, um den Auslastungsstatus der System-CPU zu überprüfen. Durch die Ausgabe von sar, vmstat, top und anderen Befehlen können Sie umfassend feststellen, ob ein Problem mit der CPU vorliegt
  3. Fahren Sie mit dem vierten Schritt fort, um zu überprüfen, ob ein Engpass bei der Festplatten-E/A vorliegt. Sie können die Lese- und Schreibleistung der Festplatte über iostat, vmstat und andere Befehle überprüfen. Das Leistungsproblem des Linux-Systems selbst wird im Wesentlichen beseitigt. Schließlich wird überprüft, ob ein Problem mit dem Programm selbst vorliegt. Durch diese Art des Denkens, durch schichtweise Erkennung und schrittweise Fehlerbehebung können sich Leistungsprobleme „nicht verstecken“, und es wird sehr einfach sein, die Links zu finden, in denen Leistungsprobleme auftreten.

Das obige ist der detaillierte Inhalt vonLinux-Leistungsoptimierung ~. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!