LoginSignup
4
2

More than 3 years have passed since last update.

laravel on dockerのimage別速度比較

Last updated at Posted at 2020-03-18

目的

php:fpm-alpineイメージを使ってlaravelを動かしていましたところ、異様にレスポンスが遅かったので調べてみたところこんな話がありました。
https://qiita.com/yoshiken/items/93d170b69d8cb8520bad

どうやらalpineが遅いと。
そこでイメージの選択でどれくらい違いが出るのかを試してみました。

比較対象

  • alpine
  • debian
  • centos

比較方法

laravel newした直後のプロジェクトをphp artisan serveで起動し、以下の2パターンで比較してみました。

  • /(Welcomページ)へリクエスト
  • /items(itemモデルとレコード100件を作って一覧をjsonで返す)へリクエスト

測定にはsiegeを利用しています。

比較結果

$ siege --no-follow -r 10 -c 1 http://localhost:8000
image response time(s)
debian 0.31
alpine 0.77
centos 0.81
$ siege --no-follow -r 10 -c 1 http://localhost:8000/items
image response time(s)
debian 0.19
alpine 1.90
centos 1.67

意外とcentosでも遅い結果になりました。
原因は何なのでしょうね?alpineとcentosでは動かすためにインストールしたExtensionが似ていたので、Extensionの違いだったりするんでしょうか。。

参考

Dockerfile

debian
FROM debian
RUN apt-get update
RUN apt-get install -y php
RUN apt-get install -y php-zip
RUN apt-get install -y php-mbstring
RUN apt-get install -y php-dom
RUN apt-get install -y php-mysql
WORKDIR /app
alpine
FROM alpine
RUN apk update
RUN apk add php
RUN apk add php-zip
RUN apk add php-mbstring
RUN apk add php-dom
RUN apk add php-phar
RUN apk add php-json
RUN apk add php-openssl
RUN apk add php-session
RUN apk add php-mysqlnd
RUN apk add php-pdo
RUN apk add php-pdo_mysql
COPY php.ini /etc/php7/php.ini
WORKDIR /app
centos
FROM centos
RUN yum update -y
RUN yum install -y php
RUN yum install -y php-mbstring
RUN yum install -y php-dom
RUN yum install -y php-json
RUN yum install -y php-session
RUN yum install -y php-mysqlnd
RUN yum install -y php-pdo
RUN yum install -y php-pdo_mysql
COPY php.ini /etc/php.ini
WORKDIR /app
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2