安装环境
git 下载相关例子代码
git clone https://github.com/feiskyer/linux-perf-examples
案例由三个容器组成,一个MySql数据库应用,一个商品搜索应用,一个数据处理应用
其中商品搜索应用提供了HTTP借口
/, 返回Index Page
/db/insert/products/, 插入指定数据量的商品信息
/products/, 查询指定商品的信息,并返回处理事件
案例的整体结构如下
运行并检查docker容器中的应用
make run
docker run --name=mysql -itd -p 10000:80 -m 800m feisky/mysql:5.6
32f22ce141ba1279ce97cf6f6c00a51c3640edd494e01141bb2ef316ac579110
docker run --name=dataservice -itd --privileged feisky/mysql-dataservice
de3b1b96cabc40275b9a0c0b5773c87def36cb6334bab16d3f374c9312193971
docker run --name=app --network=container:mysql -itd feisky/mysql-slow
83c5dce8e2b20f1470f3b952b2858618d2de56c04d9c3933a5dd270d06825d6d
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83c5dce8e2b2 feisky/mysql-slow "python /app.py" 3 seconds ago Up 3 seconds app
de3b1b96cabc feisky/mysql-dataservice "python /dataservi..." 4 seconds ago Up 3 seconds dataservice
32f22ce141ba feisky/mysql:5.6 "docker-entrypoint..." 4 seconds ago Up 4 seconds 3306/tcp, 0.0.0.0:10000->80/tcp mysql
检查MySql是否初始化完成
docker logs -f mysql
2019-01-23 04:54:55 1 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-01-23 04:54:55 1 [Note] InnoDB: Using Linux native AIO
2019-01-23 04:54:55 1 [Note] InnoDB: Using CPU crc32 instructions
2019-01-23 04:54:55 1 [Note] InnoDB: Initializing buffer pool, size = 5.0M
2019-01-23 04:54:55 1 [Note] InnoDB: Completed initialization of buffer pool
2019-01-23 04:54:55 1 [Note] InnoDB: Highest supported file format is Barracuda.
2019-01-23 04:54:55 1 [Note] InnoDB: 128 rollback segment(s) are active.
2019-01-23 04:54:55 1 [Note] InnoDB: Waiting for purge to start
2019-01-23 04:54:55 1 [Note] InnoDB: 5.6.42 started; log sequence number 1625997
2019-01-23 04:54:55 1 [Note] Server hostname (bind-address): '*'; port: 3306
2019-01-23 04:54:55 1 [Note] IPv6 is available.
2019-01-23 04:54:55 1 [Note] - '::' resolves to '::';
2019-01-23 04:54:55 1 [Note] Server socket created on IP: '::'.
2019-01-23 04:54:55 1 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2019-01-23 04:54:55 1 [Warning] 'proxies_priv' entry '@ root@32f22ce141ba' ignored in --skip-name-resolve mode.
2019-01-23 04:54:55 1 [Note] Event Scheduler: Loaded 0 events
2019-01-23 04:54:55 1 [Note] mysqld: ready for connections.
Version: '5.6.42-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
检查商品搜索应用的web请求是否正常
curl http://[IP]:10000
Index Page