ホームページ php教程 php手册 PHP を高速化するための LAMP サーバーのパフォーマンス最適化のヒント

PHP を高速化するための LAMP サーバーのパフォーマンス最適化のヒント

Jun 21, 2016 am 08:52 AM
apache eaccelerator nbsp quot

現在、LAMP (Linux + Apache + MySQL + PHP) は近年急速に発展し、Web サーバーのデファクトスタンダードとなっています。この記事では、LAMP の組み合わせに基づくサーバーのパフォーマンス最適化手法、つまり PHP の高速化を紹介します。

Apache サーバーの最適化、PHP の最適化、Mysql の最適化

1. eaccelerator を使用します

上記で Apache サーバーの最適化について説明しましたが、PHP の Web ページを閲覧したことがある方は、次のことに気づいたかもしれません。なぜ PHP の速度が遅いのか? 上記の応答は知られていません。非常に遅いのはなぜですか? これは、PHP プログラム コードが呼び出す関数ライブラリが多すぎるためで、これらの関数ライブラリを呼び出すたびにハード ディスクから読み込む必要があるためです。 PHPの速度は?メモリの速度はハードディスクよりもはるかに速いため、ハードディスク内のこれらの関数ライブラリを最初にキャッシュ (Cache) に読み込むことができれば。もちろんこの場合、速度は大幅に向上します。

2. ソフトウェアのダウンロードとインストール:

wget http://internap.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.bz2

tar jxf eaccelerator-0.9.3.tar.bz2

/usr/local/bin/phpize

./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config

メイク;メイクインストール

/etc/php.ini ファイルを変更し、次の内容を追加します:

拡張子="/PATH/TO/eaccelerator.so"

eaccelerator.shm_size="16"

eaccelerator.cache_dir="/tmp/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="0"

eaccelerator.shm_prune_period="0"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

次に、クイック アクセス データ ディレクトリを作成します:

mkdir /tmp/eAccelerator

chmod 0777 /tmp/eAccelerator

Apache サーバーを再起動します:

/etc/rc.d/init.d/httpd 再起動

Lynx ブラウザで Web ページを開き、phpinfo() で図 7 を確認します。これは、インストールが成功したことを意味します。

図 7 eAccelerator が有効になっている

画像からわかるように、eAccelerator が有効になっています。以下の ab コマンドを使用します。 Apache HTTP サーバー パフォーマンス テスト ツールは、Apache http サーバーをテストするためのツールです。このツールを使用して、単位時間内に Apache に送信されるリクエストの数を指定して、Apache とマシンのパフォーマンスを確認できます。一緒に働きます。コマンドは次のとおりです:

/home/apache/bin/ab -c 20 -n100 –w http://localhost/phpinfo >1.html

-c: 同時にサーバーに送信されるリクエストの数。デフォルトでは、一度に 1 つの http リクエストのみが実行されます。

-n: テストセッション実行時に発行されたリクエストの数。

-w: 出力結果を HTML テーブルに出力します。デフォルトのテーブルは 2 列、n 行で、背景が白、枠が黒です。

ApacheBench のテスト データの 1 秒あたりのリクエスト数 (以下、rps) は、1 秒あたりにサーバーによって返されるページ数を指します。比較すると、eAccelerator を使用した後、Web ページの速度が大幅に高速化されます。図8 lynxブラウザのHTML形式テスト結果。

図8 HTML形式のテスト結果

3. Zend Optimizer を使用する

Zend Optimizer はコード最適化メソッドを使用して、PHP 4.0 アプリケーションの実行速度を向上させます。実装の原則は、ランタイム コンパイラ (Run-Time Compiler) によって生成されたコードを、最終的に実行される前に最適化することです。一般に、Zend Optimizer を使用する PHP プログラムは、使用しないプログラムより 40% ~ 100% 高速になります。これは、Web サイト訪問者が Web をより速く閲覧し、より多くのことを達成し、顧客満足度を向上できることを意味します。応答の高速化は、ハードウェアへの投資を節約し、Web サイトが提供するサービスを強化することも意味します。したがって、Zend Optimizer を使用することは、電子商取引の収益性を向上させることに相当します。 Zend Optimizer は、PHP ユーザー、特に Web サイトを運営するユーザーに多くのメリットをもたらします。 PHP プログラムを迅速に実行すると、サーバーの CPU 負荷が大幅に軽減され、応答時間 (訪問者がリンクをクリックしてからサーバーがページの読み取りを開始するまでの時間) を半分に短縮できます。

Zend Optimizer のインストールは確実です。インストール ウィザードは、エンジンの起動を支援するために、選択に従って php.ini を自動的に変更します。

ソフトウェアのダウンロードとインストール:

wget http://downloads.z​​end.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

gunzip ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

tar vxf ZendOptimizer-3.0.0-linux-glibc21-i386.tar

cd ZendOptimizer-3.0.0-linux-glibc21-i386

./install

図 9 Zend Optimizer インストール ウィザード

Apache サーバーを再起動します:

/etc/rc.d/init.d/httpd 再起動

Web ページを開いて phpinfo() を介して画像を表示します。これは、Zend Optimizer が正常にインストールされていることを意味します。

図 10 Zend Optimizer が正常にインストールされた

その後、ab コマンドを使用して再度テストできます。 Siege (http://www.joedog.org/siege/) をテストに使用することもできます。これは、アプリケーションのストレス耐性を評価するために WEB 開発用に設計されたストレス テストおよび評価ツールです。Web に合わせて構成できます。サイトは複数のユーザーによる同時アクセスを実行し、各ユーザーのすべてのリクエスト処理の対応時間を記録し、一定の同時アクセス数の下でそれを繰り返します。



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 May 09, 2024 am 09:01 AM

1. 58 Portraits プラットフォーム構築の背景 まず、58 Portraits プラットフォーム構築の背景についてお話ししたいと思います。 1. 従来のプロファイリング プラットフォームの従来の考え方ではもはや十分ではありません。ユーザー プロファイリング プラットフォームを構築するには、複数のビジネス分野からのデータを統合して、ユーザーの行動や関心を理解するためのデータ マイニングも必要です。最後に、ユーザー プロファイル データを効率的に保存、クエリ、共有し、プロファイル サービスを提供するためのデータ プラットフォーム機能も必要です。自社構築のビジネス プロファイリング プラットフォームとミドルオフィス プロファイリング プラットフォームの主な違いは、自社構築のプロファイリング プラットフォームは単一のビジネス ラインにサービスを提供し、オンデマンドでカスタマイズできることです。ミッドオフィス プラットフォームは複数のビジネス ラインにサービスを提供し、複雑な機能を備えていることです。モデリングを提供し、より一般的な機能を提供します。 2.58 中間プラットフォームのポートレート構築の背景のユーザーのポートレート 58

Java 同時プログラミングで同時実行テストとデバッグを実行するにはどうすればよいですか? Java 同時プログラミングで同時実行テストとデバッグを実行するにはどうすればよいですか? May 09, 2024 am 09:33 AM

同時実行テストとデバッグ Java 同時プログラミングにおける同時実行テストとデバッグは非常に重要であり、次の手法が利用可能です。 同時実行テスト: 単体テスト: 単一の同時タスクを分離してテストします。統合テスト: 複数の同時タスク間の相互作用をテストします。負荷テスト: 高負荷時のアプリケーションのパフォーマンスとスケーラビリティを評価します。同時実行デバッグ: ブレークポイント: スレッドの実行を一時停止し、変数を検査するかコードを実行します。ロギング: スレッドのイベントとステータスを記録します。スタック トレース: 例外のソースを特定します。視覚化ツール: スレッドのアクティビティとリソースの使用状況を監視します。

Eclipseにサーバーを追加する方法 Eclipseにサーバーを追加する方法 May 05, 2024 pm 07:27 PM

Eclipse にサーバーを追加するには、次の手順に従います。 サーバー ランタイム環境の作成 サーバーの構成 サーバー インスタンスの作成 サーバー ランタイム環境の選択 サーバー インスタンスの構成 サーバー デプロイメント プロジェクトの開始

Kubernetes Operator を活用して PHP クラウド展開を簡素化するにはどうすればよいですか? Kubernetes Operator を活用して PHP クラウド展開を簡素化するにはどうすればよいですか? May 06, 2024 pm 04:51 PM

KubernetesOperator は、次の手順に従って PHP クラウド デプロイメントを簡素化します。 PHPOperator をインストールして、Kubernetes クラスターと対話します。 PHP アプリケーションをデプロイし、イメージとポートを宣言します。ログの取得、記述、表示などのコマンドを使用してアプリケーションを管理します。

PHP セキュリティのベスト プラクティスを実装する方法 PHP セキュリティのベスト プラクティスを実装する方法 May 05, 2024 am 10:51 AM

PHP セキュリティのベスト プラクティスを実装する方法 PHP は、動的でインタラクティブな Web サイトの作成に使用される最も人気のあるバックエンド Web プログラミング言語の 1 つです。ただし、PHP コードはさまざまなセキュリティ脆弱性に対して脆弱になる可能性があります。 Web アプリケーションをこれらの脅威から保護するには、セキュリティのベスト プラクティスを実装することが重要です。入力検証 入力検証は、ユーザー入力を検証し、SQL インジェクションなどの悪意のある入力を防止するための重要な最初のステップです。 PHP は、filter_var() や preg_match() などのさまざまな入力検証関数を提供します。例: $username=filter_var($_POST['username'],FILTER_SANIT

Java データ構造とアルゴリズム: クラウド コンピューティングの実践ガイド Java データ構造とアルゴリズム: クラウド コンピューティングの実践ガイド May 09, 2024 am 08:12 AM

クラウド コンピューティングでは、大量のデータを管理および処理するために、データ構造とアルゴリズムの使用が不可欠です。一般的なデータ構造には、配列、リスト、ハッシュ テーブル、ツリー、グラフなどがあります。一般的に使用されるアルゴリズムには、並べ替えアルゴリズム、検索アルゴリズム、グラフ アルゴリズムなどがあります。 Java の機能を活用することで、開発者は Java コレクション、スレッドセーフなデータ構造、および Apache Commons Collection を使用して、これらのデータ構造とアルゴリズムを実装できます。

Java ネットワーク プログラミングで一般的に使用されるプロトコルとライブラリは何ですか? Java ネットワーク プログラミングで一般的に使用されるプロトコルとライブラリは何ですか? May 09, 2024 pm 06:21 PM

Java ネットワーク プログラミングで一般的に使用されるプロトコルとライブラリ: プロトコル: TCP、UDP、HTTP、HTTPS、FTP ライブラリ: java.net、java.nio、ApacheHttpClient、Netty、OkHttp

PHP マイクロサービスのコンテナ化されたデプロイメントに関する完全なガイド PHP マイクロサービスのコンテナ化されたデプロイメントに関する完全なガイド May 08, 2024 pm 05:06 PM

PHP マイクロサービス コンテナ化展開の完全ガイド はじめに マイクロサービス アーキテクチャは、アプリケーションを独立した疎結合サービスに分解する、現代のソフトウェア開発におけるホットなトレンドとなっています。コンテナ化は、これらのマイクロサービスをデプロイおよび管理するための効果的な方法を提供します。この記事では、PHPDocker を使用してマイクロサービスをコンテナ化してデプロイするのに役立つステップバイステップのガイドを提供します。 Docker の基本 Docker は、アプリケーションとそのすべての依存関係をポータブル コンテナーにパッケージ化する軽量のコンテナー化プラットフォームです。次の手順では、Docker の使用方法を説明します。 #Install Dockersudoapt-getupdatesudoapt-getinstalldock

See all articles