Heim  >  Artikel  >  Backend-Entwicklung  >  Leitfaden zur PHP-FPM-Leistungsverbesserung: Optimieren Sie die Reaktionszeit und den Durchsatz Ihrer Website

Leitfaden zur PHP-FPM-Leistungsverbesserung: Optimieren Sie die Reaktionszeit und den Durchsatz Ihrer Website

WBOY
WBOYOriginal
2023-10-05 11:33:141086Durchsuche

Leitfaden zur PHP-FPM-Leistungsverbesserung: Optimieren Sie die Reaktionszeit und den Durchsatz Ihrer Website

PHP-FPM-Leitfaden zur Leistungsverbesserung: Optimieren Sie die Reaktionszeit und den Durchsatz der Website. Es sind spezifische Codebeispiele erforderlich.

Einführung:
Im heutigen Internetzeitalter wird die Optimierung der Website-Leistung immer wichtiger. Das Benutzererlebnis auf der Website steht in direktem Zusammenhang mit der Benutzerbindung und der Konversionsrate. PHP ist eine häufig verwendete Back-End-Entwicklungssprache, und PHP-FPM ist die Abkürzung für PHP FastCGI Process Manager, bei dem es sich um eine Auswahl des PHP-Ausführungsmodus handelt. In diesem Artikel wird detailliert beschrieben, wie Sie die Reaktionszeit und den Durchsatz der Website durch die Optimierung von PHP-FPM verbessern können, und es werden konkrete Codebeispiele bereitgestellt.

1. PHP-FPM-Konfiguration optimieren

  1. Prozesspooleinstellungen anpassen
    PHP-FPM verwendet Prozesspools zur Verwaltung von Anforderungen, um die Leistung zu verbessern.
    a. max_children: Gibt die maximale Anzahl untergeordneter Prozesse in jedem Prozesspool an. Passen Sie diesen Wert entsprechend der Leistung und Auslastung des Servers an. Mit dem Befehl „pm.max_children = 50“ können Sie die maximale Anzahl der Kindprozesse auf 50 festlegen.
    b. start_servers: Gibt die Anzahl der untergeordneten Prozesse an, wenn der Prozesspool startet. Wählen Sie einen angemessenen Wert basierend auf der Auslastung des Servers. Mit dem Befehl „pm.start_servers = 10“ können Sie die Anzahl der Kindprozesse beim Start auf 10 setzen.
  2. Passen Sie die Verbindungspooleinstellungen an
    Der Verbindungspool wird von PHP-FPM verwendet, um die Verbindung mit dem Webserver (z. B. Nginx) zu verwalten. Durch Anpassen der Verbindungspooleinstellungen können Sie die Leistung Ihrer Verbindung verbessern.
    a. pm.max_requests: Gibt die maximale Anzahl von Anfragen an, die von jedem untergeordneten Prozess verarbeitet werden. Sobald die Anzahl der vom untergeordneten Prozess verarbeiteten Anforderungen diesen Wert erreicht, wird er heruntergefahren und neu gestartet. Dadurch werden Speicherlecks vermieden, die durch lang laufende Prozesse verursacht werden. Mit dem Befehl „pm.max_requests = 10000“ können Sie die maximale Anzahl der von jedem untergeordneten Prozess verarbeiteten Anfragen auf 10000 festlegen.
    b. request_terminate_timeout: Geben Sie den Timeout für die Verarbeitung von Anfragen an. Wird eine Anfrage über diesen Zeitraum hinaus nicht bearbeitet, wird sie zwangsweise abgebrochen. Mit dem Befehl „request_terminate_timeout = 60s“ können Sie den Timeout für die Bearbeitung von Anfragen auf 60 Sekunden einstellen.

2. Code-Optimierung

  1. Caching-Daten
    Die Verwendung von Cache kann die Häufigkeit des Zugriffs auf Ressourcen wie Datenbanken reduzieren und dadurch die Leistung verbessern. Das Folgende ist ein einfacher Beispielcode, der Memcached als Cache verwendet:

    <?php
    $memcached = new Memcached();
    $memcached->addServer('localhost', 11211);
    
    $key = 'cache_key';
    $data = $memcached->get($key);
    if (!$data) {
     $data = fetchDataFromDatabase();
     $memcached->set($key, $data, 60);
    }
    
    // 使用$data进行其他操作
    ?>
  2. Verwenden Sie die Datenbank angemessen
    Die Datenbank ist ein wichtiger Teil der Website, und eine angemessene Nutzung der Datenbank kann die Leistung verbessern. Das Folgende ist ein einfacher Beispielcode, der PDO für Datenbankoperationen verwendet und die Vorverarbeitung ermöglicht:

    <?php
    $dsn = 'mysql:host=localhost;dbname=test';
    $user = 'username';
    $password = 'password';
    $options = array(
     PDO::ATTR_EMULATE_PREPARES => false, // 禁用准备好的语句的模拟
     PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION // 启用错误处理
    );
    
    $pdo = new PDO($dsn, $user, $password, $options);
    
    $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
    $stmt->bindValue(':id', $id, PDO::PARAM_INT);
    $stmt->execute();
    
    $data = $stmt->fetch(PDO::FETCH_ASSOC);
    ?>

3. Optimieren Sie die Codeleistung.

  1. Reduzieren Sie E/A-Vorgänge Effizienz der Codeausführung. Das Folgende ist ein einfacher Beispielcode, der Datei-Caching verwendet, um häufige Aufrufe der Datenbank zu reduzieren:

    <?php
    $cacheFile = 'cache.txt';
    
    if (file_exists($cacheFile) && time() - filemtime($cacheFile) < 60) {
     $data = file_get_contents($cacheFile);
    } else {
     $data = fetchDataFromDatabase();
     file_put_contents($cacheFile, $data);
    }
    
    // 使用$data进行其他操作
    ?>

  2. Vermeiden Sie wiederholte Abfragen in Schleifen.

    Wiederholte Abfragen in Schleifen verringern die Leistung erheblich. Sie können Duplikate vermeiden, indem Sie die Abfrageergebnisse zwischenspeichern. Das Folgende ist ein einfacher Beispielcode, der ein Array zum Zwischenspeichern von Abfrageergebnissen verwendet:

    <?php
    $query = 'SELECT * FROM products';
    $result = array();
    
    foreach ($pdo->query($query) as $row) {
     if (isset($result[$row['key']])) {
         $result[$row['key']][] = $row;
     } else {
         $result[$row['key']] = array($row);
     }
    }
    
    // 使用$result进行其他操作
    ?>

Fazit:

Durch die Optimierung der PHP-FPM-Konfiguration, die rationelle Nutzung von Cache und Datenbank sowie die Optimierung der Codeleistung können wir die Leistung erheblich verbessern Reaktionszeit und Reaktionszeit des Website-Durchsatzes. In tatsächlichen Anwendungen ist es erforderlich, die Konfiguration entsprechend der Leistung und Auslastung des Servers anzupassen, geeignete Caching-Mechanismen und Datenbankbetriebsmethoden zu verwenden und unnötige E/A-Vorgänge und wiederholte Abfragen zu vermeiden.

Referenz:

    PHP-FPM-Dokumentation: http://php.net/manual/en/install.fpm.php
  • PHP-Dokumentation: http://php.net/manual/en/index.php

Das obige ist der detaillierte Inhalt vonLeitfaden zur PHP-FPM-Leistungsverbesserung: Optimieren Sie die Reaktionszeit und den Durchsatz Ihrer Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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