Suche senden
Hochladen
Apacheチューニング
•
Als PPTX, PDF herunterladen
•
43 gefällt mir
•
14,119 views
I
ii012014
Folgen
Apacheチューニング
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 20
Jetzt herunterladen
Empfohlen
Running MariaDB in multiple data centers
Running MariaDB in multiple data centers
MariaDB plc
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
HTTP/2 for Developers
HTTP/2 for Developers
Svetlin Nakov
Web hdfs and httpfs
Web hdfs and httpfs
wchevreuil
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
Taras Matyashovsky
Pulsar Handson 20180226
Pulsar Handson 20180226
Nozomi Kurihara
Percona XtraDB Cluster
Percona XtraDB Cluster
Kenny Gryp
Empfohlen
Running MariaDB in multiple data centers
Running MariaDB in multiple data centers
MariaDB plc
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
HTTP/2 for Developers
HTTP/2 for Developers
Svetlin Nakov
Web hdfs and httpfs
Web hdfs and httpfs
wchevreuil
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
Taras Matyashovsky
Pulsar Handson 20180226
Pulsar Handson 20180226
Nozomi Kurihara
Percona XtraDB Cluster
Percona XtraDB Cluster
Kenny Gryp
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
Building your First gRPC Service
Building your First gRPC Service
Jessie Barnett
MariaDB Administrator 교육
MariaDB Administrator 교육
Sangmo Kim
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Kenny Gryp
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
Best Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual Environments
Jignesh Shah
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Yongho Ha
Cassandraのバックアップと運用を考える
Cassandraのバックアップと運用を考える
Kazutaka Tomita
Load Balancing with HAproxy
Load Balancing with HAproxy
Brendan Jennings
Containerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container Runtime
Phil Estes
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
gRPC
gRPC
Majid Alaeinia
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Mydbops
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
HostedbyConfluent
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
Introduction to memcached
Introduction to memcached
Jurriaan Persyn
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
FlyData Inc.
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
NAVER D2
Consistency Tradeoffs in Modern Distributed Database System Design
Consistency Tradeoffs in Modern Distributed Database System Design
Arinto Murdopo
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Boss4434
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
Masatomo Ito
Weitere ähnliche Inhalte
Was ist angesagt?
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
Building your First gRPC Service
Building your First gRPC Service
Jessie Barnett
MariaDB Administrator 교육
MariaDB Administrator 교육
Sangmo Kim
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Kenny Gryp
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
Best Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual Environments
Jignesh Shah
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Yongho Ha
Cassandraのバックアップと運用を考える
Cassandraのバックアップと運用を考える
Kazutaka Tomita
Load Balancing with HAproxy
Load Balancing with HAproxy
Brendan Jennings
Containerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container Runtime
Phil Estes
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
gRPC
gRPC
Majid Alaeinia
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Mydbops
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
HostedbyConfluent
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
Introduction to memcached
Introduction to memcached
Jurriaan Persyn
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
FlyData Inc.
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
NAVER D2
Consistency Tradeoffs in Modern Distributed Database System Design
Consistency Tradeoffs in Modern Distributed Database System Design
Arinto Murdopo
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Was ist angesagt?
(20)
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
Building your First gRPC Service
Building your First gRPC Service
MariaDB Administrator 교육
MariaDB Administrator 교육
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
Best Practices of running PostgreSQL in Virtual Environments
Best Practices of running PostgreSQL in Virtual Environments
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Cassandraのバックアップと運用を考える
Cassandraのバックアップと運用を考える
Load Balancing with HAproxy
Load Balancing with HAproxy
Containerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container Runtime
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
gRPC
gRPC
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Introduction to memcached
Introduction to memcached
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
Consistency Tradeoffs in Modern Distributed Database System Design
Consistency Tradeoffs in Modern Distributed Database System Design
スレッドダンプの読み方
スレッドダンプの読み方
Ähnlich wie Apacheチューニング
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Boss4434
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
Masatomo Ito
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
Kazuho Oku
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
真吾 吉田
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
Amazon Web Services Japan
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
tama200x Kobayashi
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
真吾 吉田
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
Amazon Web Services Japan
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
WordPressのCDN化
WordPressのCDN化
J-Stream Inc.
成長していくサービスとAWS
成長していくサービスとAWS
Mitsuharu Hamba
20120821 pronet study
20120821 pronet study
Six Apart
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)
真吾 吉田
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
QlikPresalesJapan
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
Amazon Web Services Japan
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編
tzm_freedom
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
Amazon Web Services Japan
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014
Cloudera Japan
簡単なHTTPサーバの作成
簡単なHTTPサーバの作成
Panu Avakul
20141206 handson
20141206 handson
Six Apart
Ähnlich wie Apacheチューニング
(20)
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
WordPressのCDN化
WordPressのCDN化
成長していくサービスとAWS
成長していくサービスとAWS
20120821 pronet study
20120821 pronet study
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014
簡単なHTTPサーバの作成
簡単なHTTPサーバの作成
20141206 handson
20141206 handson
Apacheチューニング
1.
Apache チューニング
2.
チューニング • KeepAliveの設定 • コンテンツの圧縮転送 •
不要モジュールの削除 • シンボリックリンク先の参照許可 • TimeOutの設定 • DNS問い合わせの無効 • .htaccessの無効化 • Prefork MPMのチューニング • Worker MPMのチューニング
3.
KeepAliveの設定 ディレクティブ 値 説明 KeepAlive
On 同一クライアントに対し コネクションを使い回す MaxKeepAliveRequests 1ページあたりの平均 的なコンテンツ数 + α 1つのKeepAliveで受け付け るリクエスト数 KeepAliveTimeout 1ページ当たりの平均 的な転送時間+α クライアントからのリクエ ストがなくてもKeepAliveを 維持する秒数
4.
コンテンツの圧縮転送 「mod_deflate」モジュールを利用することで、Webク ライアントへコンテンツを送信する際、データを圧縮する ことができる。 データ圧縮時にCPUリソースを消費するが、転送速度向上 が可能。
5.
不要モジュールの削除 デフォルトでは多くの拡張モジュー ルが組み込まれているため、無駄に 消費する。 必要最低限の拡張モジュールのみ組 み込むことで、無駄な消費を抑え、 パフォーマンスを向上する。 Listen 80 ServerRoot "/etc/httpd" DocumentRoot "/var/www/html/" User
nobody Group nobody <IfModule prefork.c> ***** </IfModule> <IfModule worker.c> ***** </IfModule> MaxRequestsPerChild 0 ErrorLog logs/error_log <Directory /> Options FollowSymLinks AllowOverride None </Directory> 必要 最小限
6.
シンボリックリンク先の参照許可 • 一般的には安全面のため、シンボリック先の参 照は許可しない。 • 許可しない場合、リクエストのたび対象コンテ ンツがシンボリックリンクかチェックされ、性 能低下。 •
性能優先の場合、全コンテンツ許可。 <Directory /> Options FollowSymLinks ※全コンテンツ許可 </Directory> # 許可しないディレクトリのみ個別指定 <Directory /home/user/html> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>
7.
Timeoutの設定 次の3つの待ち時間を同時に変更する。 • GETリクエストを受け取るのにかかる総時間 • POSTやPUTリクエストにおいて、次のTCPパケットが届 くまでの待ち時間 •
レスポンスを返す際TCPのACKが返ってくるまでの時間 ※デフォルトは300(5分)。 多くのリクエストを処理するには待ち時間を短くする。
8.
DNS問い合わせの無効 クライアントのアドレスをログに記憶する際、DNS問い合 わせすることでホスト名で記憶できるが、パフォーマンス が低下するため、ホスト名への変換はせず、IPアドレスで 記録する。 ※後でコマンドによりホスト名に変換可能 HostnameLookups Off ※デフォルトのまま
9.
.htaccessの無効化 • 一般ユーザがサーバの設定を行う場合にhttpd.confの代 わりに使用する設定ファイル。 • 使用する場合は、リクエストのたびに、 .htaccessの有無を確認するため性能低下。 •
一般ユーザが設定を行わない場合は、パフォーマンス優 先およびセキュリティ面から、 無効化する。
10.
prefork MPMのチューニング ディレクティブ 値
説明 StartServers デフォルトの5~10 起動時の子プロセス数 MinSpareServers MaxSpareServers まずはデフォルトの5,10で様 子を見て、待機プロセスの消 費が激しく、新たな子プロセ スの起動が間に合わない場合 は徐々に引き上げる。 子プロセスをMinから Maxの間で自動的に調 整する。 過度に待機プロセスが 発生しないように Min<Maxとなるよう待 機プロセスを生成する。 ServerLimit MaxClientsと同様 プロセス数の上限 MaxClients Apacheで割り当て可能なサー バのメモリ容量 / 1プロセスあ たりの平均メモリ消費量 *1 同時接続可能なクライ アント数の上限 MaxRequestsPerChild 子プロセスの起動はサーバに 負担がかかるため、大きな値。 ※静的ドキュメントの場合は0 ※CPU負荷、プロセスのメモ リサイズの時間経過から判断 新たな子プロセスを起 動するまでのリクエス ト回数の上限 ※メモリ完全共有状態 に戻る *1 コピーオンライトを考慮すると更に大きな値を設定可能
11.
MaxClient 1プロセスあたりのメモリ消費量は厳密にはコピーオンライ トにより親と共有している容量分を除いた値。 • 搭載メモリ容量(4GB) • 1プロセスあたりのメモリ消費量(100MB) ※親との共有分(70%)は除き、30MB •
OS利用分のメモリとして512MB 計算式:4GB – 512MB = 3500/30=116.66 ⇒余裕を持たせて「100」とする! ※ある程度リクエストを流して定常状態時の共有率を使用
12.
コピーオンライト • Linuxは物理メモリを節約するため親プロセスと子プロ セスで一部のメモリを共有する。 • 共有メモリ領域は/proc/<プロセスPID>/smpasで調査 可能だが、データ量が多く、大変。 •
Perlスクリプトで調査可能。 # <ファイル名>.pl `pgrep httpd` http://gihyo.jp/book/support/24svr
13.
worker MPMのチューニング ディレクティブ 値
説明 MaxClients デフォルト(ServerLimitの 25倍) スレッド数の最大値 処理可能な同時リクエスト 数 MinSpareThreads MaxSpareThreads デフォルト(75、250) 待機スレッドをMinから Maxの間で自動的に調整す る。 ServerLimit MaxClients/ThreadsPerChild 以上 大きな値を設定し、余計な未 使用メモリを割り当てないよ うにする。 ThreadLimitと組み合わせ てMaxClientsに設定可能な 上限値。 ThreadsPerChild ThreadPerChildに設定可能 な子プロセス毎のスレッド数 の上限 1プロセスで生成されるス レッド数 StartServer 起動時の子プロセス数を指定 スレッドを割り当てるため大 きくする必要はない。
14.
セキュリティ • サーバ情報の隠蔽 • URLエンコードで「/
スラッシュ」を許可 • デフォルトコンテンツの置換 • .htaccessの無効化 • ユーザホームの公開を特定ユーザに限定 • ドキュメントルートの変更 • 画像の直リンクの禁止
15.
サーバ情報の隠ぺい ディレクティブ 値 説明 ServerTokens
ProductOnly クライアントに返信するサーバ応答 ヘッダに表示する情報を最小限にする ServerSignature Off エラーメッセージ出力時にフッタを表 示しない
16.
URLエンコードで「/ スラッシュ」を許可 • 明示的に表示されるサーバ情報の他に、特定の動作パ ターンからApacheを使用していることを知られてしま う。 •
URLに「%2f」が含まれている場合、Apache以外の Webサーバは「/」に変換されるが、Apacheはデフォ ルトでは「/」を許可しないため「Not Found」 AllowEncodeSlashes On
17.
デフォルトコンテンツの置換 オリジナルのエラーページやルートドキュメントから使用 しているOSやパッケージが推測できないように、コンテン ツを置き換えが必要。 ■ソースからインストール /usr/local/apache2/{cgi-bin,error,htdocs,icons} ■パッケージからインストール /var/www/{cgi-bin,error,html,icons}
18.
ドキュメントルートの変更 サイト上のコンテンツの書き換えを防ぐため、デフォルト のドキュメントルートから変更が必要。
19.
画像の直リンクの禁止 画像コンテンツなどを第三者のサイトでURLを参照され、 インラインで表示されるような「直リンク」によって、 サーバに大きな負担がかかる場合がある。 # 参照元URLとして許可されるドメイン SetEnvIf Referer
example.com authoritative_site # 正規表現で複数ファイル指定 <FilesMatch “.(gif|jpe?.g|png)$”> Order deny,allow Deny from all Allow from env=autoritative_site # 環境変数 </FilesMatch>
20.
iptables インターネット DNSサーバ メンテナンスホスト iptables設定サーバ 6 1 2 3 7 5 4 1. 受信パケット破棄 (送信に対する受信パケットは許可) 2. 送信パケットは全て許可 3.
ループバックアドレスは全て許可 4. Pingは相互許可 5. メンテナンスからssh(TCP 22)を許可 6. 全クライアントからHTTPを許可 (TCP 80) 7. サーバからのDNS問い合わせを許可 (UDP 53)
Jetzt herunterladen