Heim >System-Tutorial >LINUX >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.
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.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:
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.1, Linux-Betriebs- und Wartungspersonal
Im Prozess der Leistungsoptimierung übernimmt das Linux-Betriebs- und Wartungspersonal sehr wichtige Aufgaben.
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.
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;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 vorliegtDas obige ist der detaillierte Inhalt vonLinux-Leistungsoptimierung ~. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!