2024年6月30日日曜日

MPM preforkメモ

▪️デフォルト値のprefork 

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers   256
    MaxConnectionsPerChild  0
</IfModule>


▪️vCPUが2048の場合

<IfModule mpm_prefork_module>
    StartServers          50
    MinSpareServers       50
    MaxSpareServers       100
    ServerLimit           2048
    MaxRequestWorkers     2048
    MaxConnectionsPerChild  0
</IfModule>


ApacheのMPM設定の確認

 apachectl -V | grep -i mpm


2024年6月20日木曜日

apache dump出力方法

FROM php:7.4-apache

## ダンプ設定 ###
RUN apt-get update && apt-get install -y \
gdb \
procps

# コアダンプの生成を有効化
RUN echo '* soft core unlimited' >> /etc/security/limits.conf && \
echo '* hard core unlimited' >> /etc/security/limits.conf

# ダンプファイルの出力先
RUN echo 'kernel.core_pattern=/tmp/core.%e.%p.%h.%t' > /etc/sysctl.d/99-custom.conf

# コアダンプを有効にするシェルスクリプトを追加
RUN echo 'ulimit -c unlimited' >> /etc/profile

2024年6月19日水曜日

apache abベンチマーク(https)のURLで実行する方法

 

ab -n 100 -c 100  -k -H "Accept-Encoding: gzip, deflate" https://www.test.com/


ここで使用しているオプションについて説明します:

  • -n 100: 総リクエスト数を100とします。必要に応じて変更してください。
  • -c 10: 同時に実行するリクエスト数を10とします。必要に応じて変更してください。
  • -k: Keep-Aliveを使用して接続を再利用します。これにより、同じ接続で複数のリクエストを行います。
  • -H "Accept-Encoding: gzip, deflate": HTTPヘッダーとしてAccept-Encodingを指定します。これは、サーバーからの圧縮されたレスポンスを受け取るための設定です。
  • https://example.com/: HTTPSプロトコルを使用してテストしたいサイトのURLを指定します。

apache チューニング


RUN sed -i '$a<IfModule mpm_prefork_module>' /etc/apache2/apache2.conf
RUN sed -i '$a StartServers 5' /etc/apache2/apache2.conf
RUN sed -i '$a MinSpareServers 5' /etc/apache2/apache2.conf
RUN sed -i '$a MaxSpareServers 10' /etc/apache2/apache2.conf
RUN sed -i '$a ServerLimit 100' /etc/apache2/apache2.conf
RUN sed -i '$a MaxClients 100' /etc/apache2/apache2.conf
RUN sed -i '$a MaxRequestsPerChild 80' /etc/apache2/apache2.conf
RUN sed -i '$a</IfModule>' /etc/apache2/apache2.conf

2024年6月16日日曜日

docker(php:7.4-apache)について

apacheとphpの連携は、 apacheモジュール(php7_module)を使うことで
HTTPリクエストに対してPHPを正しく処理できる状態にしている。

具体的には、php7_moduleがApacheのロードモジュールとしてリストされている場合、Apacheは.php拡張子を持つファイルを受け取った際に、そのファイルをPHPスクリプトとして解釈し、PHPエンジンを通じて処理することができます。

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...