apache - 在嵌入式设备中使用php,php-fpm占用很高的CPU
目前手头上现在有个项目,是在一个装有linux系统的嵌入式设备里面跑一个网站。
设备的CPU是RAM结构,单核,1GB。
我们在系统里面架设了Apache+Mysql+php,然后写个网站,放在里面运行。感觉有点类似于路由器里面那个web页面的设置程序,但是我们那是个完整的网站应用。
php在设备上运行的很慢,但是通过合并php文件(减小IO),使用apc(缓存opcode和一些数据和页面),访问速度有所提升。
但是,每次访问设备里面的网站时,php-fpm的cpu能瞬间占用到40%左右,不访问页面后cpu占用会降下来。因为设备中还运行了一下其他服务和程序,当php-fpm占用过多cpu后,会引起其他程序出现问题。
为什么php-fpm会占用那么多cpu?apache也没有占多少,有没有办法让cpu降下来。
本来有想过用一些嵌入式的web服务器,但是感觉cpu占用不是apache的问题,是php的问题,不知道如何处理。友友们又没有什么建议和想法?
PS:设备中的网站只有一个用户访问也会这样。
回复内容:
目前手头上现在有个项目,是在一个装有linux系统的嵌入式设备里面跑一个网站。
设备的CPU是RAM结构,单核,1GB。
我们在系统里面架设了Apache+Mysql+php,然后写个网站,放在里面运行。感觉有点类似于路由器里面那个web页面的设置程序,但是我们那是个完整的网站应用。
php在设备上运行的很慢,但是通过合并php文件(减小IO),使用apc(缓存opcode和一些数据和页面),访问速度有所提升。
但是,每次访问设备里面的网站时,php-fpm的cpu能瞬间占用到40%左右,不访问页面后cpu占用会降下来。因为设备中还运行了一下其他服务和程序,当php-fpm占用过多cpu后,会引起其他程序出现问题。
为什么php-fpm会占用那么多cpu?apache也没有占多少,有没有办法让cpu降下来。
本来有想过用一些嵌入式的web服务器,但是感觉cpu占用不是apache的问题,是php的问题,不知道如何处理。友友们又没有什么建议和想法?
PS:设备中的网站只有一个用户访问也会这样。
如果apache,mysql,php什么的都挤在一个嵌入式设备里,很可能是内存不够了或者是缓存的空间被挤占,导致每次访问都会触发大量page fault。
另一种可能是pm设置成了ondemand或其他非固定算法,使得php-fpm不断花时间启动新的php进程。
我没记错的话,PHP-FPM收到请求后,默认会循环在worker列表里找下一个空闲的worker,而不是重用旧的。如果你开了10个worker,可能新worker已经给交换出内存了。
建议降低php-fpm spawn的worker数量。对于单核处理器,mysql又部署在同一设备上的情况,甚至一个worker就够了。(无需I/O等待的时候,开再多的worker也只是瓜分早就100%占用的CPU而已,还会创造无谓的context switch。)
嵌入式要用apache + php建议直接用mod_php。可能的话换成lighttpd + php-fcgi应该更快。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.
