Linux 性能工具安装部署
docker
一.运行docker Linux内核版本需要在3.8以上,针对centos6.5 内核为2.6的系统需要先升级内核.不然会特别卡
 在yum的ELRepo源中,有mainline(4.5)、long-term(4.4)这2个内核最新版本,考虑到long-term更稳定,会长期更新,所以选择这个版本。(在 http://hkg.mirror.rackspace.com/elrepo/kernel/el7/x86_64/RPMS/ 能查看最新内核版本)
1.查看当前版本:
[root@localhost ~]# more /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
2.升级内核
1.>导入public key
rpm --import http://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.>安装ELRepo到CentOS-6.5中
rpm -ivh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
3.>安装**kernel-lt(lt=long-term)**
yum --enablerepo=elrepo-kernel install kernel-lt -y
或者安装kernel-ml(ml=mainline)
yum --enablerepo=elrepo-kernel install kernel-ml -y
4.>编辑grub.conf文件,修改Grub引导顺序
vim /etc/grub.conf
# grub.conf generated by anaconda
#
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (4.4.121-1.el6.elrepo.x86_64)
        root (hd0,0)
        kernel /vmlinuz-4.4.121-1.el6.elrepo.x86_64 ro root=UUID=9955fe5f-5015-4582-a9d5-60fedd85d282 rd_NO_LUKS rd_NO_LVM LANG=zh_CN.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-4.4.121-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=9955fe5f-5015-4582-a9d5-60fedd85d282 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.el6.x86_64.img
确认刚安装好的内核在哪个位置,然后设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0
5.>重启,查看内核版本号.
[root@localhost ~]# reboot
[root@localhost ~]# uname -r
4.4.121-1.el6.elrepo.x86_64
至此,CentOS6.5的内核升级完成,下面就可以安装docker了.
二.安装docker
 直接使用命令: yum install docker-io   是会报错的!!!  提示:No package docker-io available.
需要先安装yum 源.
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
再执行
yum install docker-io
就可以正常安装了!!
启动docker
service docker start
查看docker版本:
[root@localhost ]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64
查看docker日志.
cat /var/log/docker
 至此,docker安装完成!!!
三.卸载docker
列出你安装过的包
[root@localhost ~]# yum list installed | grep docker
docker-io.x86_64                     1.7.1-2.el6                        @epel  
删除软件包
yum -y remove docker-io.x86_64
删除镜像/容器等
rm -rf /var/lib/docker
四.docker加速配置,配置国内源(docker1.7修改方法)
vi /etc/sysconfig/docker
加入下面两行
other_args="--registry-mirror=https://wbtwgo1e.mirror.aliyuncs.com"  
OPTIONS='--registry-mirror=https://wbtwgo1e.mirror.aliyuncs.com'
五.报错解决
docker 已死,但 pid 文件仍存报错(service docker status)
yum install device-mapper-event-libs
六.安装docker-compose,版本1.5.2,适配docker1.7
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。
安装
sudo curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
设置可执行
sudo chmod +x /usr/bin/docker-compose
备注:V1 版本的 docker-compose.yml 只被支持到 docker-compose 1.6.x。再往后的 docker-compose 版本就不再支持 V1 版本的 docker-compose.yml。
1.5.2就只能用V1 版本的 docker-compose.yml
七.升级docker 1.9.1(升级docker1.10一直失败启动不了)(升级后docker-1.9.1里没php:7.1-fpmERROR: Service 'php' failed to build: Tag 7.1-fpm not found in repository docker.io/library/php)(建议不升)
curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-1.9.1 && chmod +x docker-1.9.1 && mv docker-1.9.1 /usr/local/bin/docker  
cp /usr/local/bin/docker /usr/bin/docker  
service docker start
ab(apache bench)
apache内集成了,安装了 apache 就无需再安装,假设没有就用:
yum install httpd-tools
之后直接就可以使用
接下来要介绍的就是apache的ab命令压测:
2.在学习使用ab命令之前,首先要了解压力测试的几个概念:(自己可以上网查下具体的概念)
吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level
-n 即requests,用于指定压力测试总共的执行次数。
-c 即concurrency,用于指定压力测试的并发数。
-t 即timelimit,等待响应的最大时间(单位:秒)。
-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v 即verbosity,指定打印帮助信息的冗余级别。
-w 以HTML表格形式打印结果。
-i 使用HEAD请求代替GET请求。
-x 插入字符串作为table标签的属性。
-y 插入字符串作为tr标签的属性。
-z 插入字符串作为td标签的属性。
-C 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X 指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。
-V 打印版本号并退出。
-k 使用HTTP的KeepAlive特性。
-d 不显示百分比。
-S 不显示预估和警告信息。
-g 输出结果信息到gnuplot格式的文件中。
-e 输出结果信息到CSV格式的文件中。
-r 指定接收到错误信息时不退出程序。
-h 显示用法信息,其实就是ab -help。
- 4.实际测试:
 -  

 
5.分析上面的压测结果:
Server Software: Apache/2.2.25 (服务器软件名称及版本信息)
Server Hostname: www.xxx.com(服务器主机名)
Server Port: 80 (服务器端口)
Document Path: /lol (供测试的URL路径)
Document Length: 0 bytes (供测试的URL返回的文档大小)
Concurrency Level: 100 (并发数)
Time taken for tests: 0.800 seconds (压力测试消耗的总时间)
Complete requests: 100 (压力测试的的总次数)
Failed requests: 0 (失败的请求数)
Total transferred: 16342 bytes (传输的总数据量)
HTML transferred: 0 bytes (HTML文档的总数据量)
Requests per second: 125.03 [#/sec] (mean) (平均每秒的请求数)
Time per request: 799.805 [ms] (mean) (所有并发用户(这里是100)都请求一次的平均时间)
Time per request: 7.998 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
Transfer rate: 19.95 [Kbytes/sec] received (传输速率,单位:KB/s)
在上面的测试中,我们设置的压力测试总次数以及并发数并没有让服务器感觉到什么「压力」,现在我们再来看一个「压力山大」的执行命令:
     ab -n 1000 -c 100 localhost/index.php,这个时候apache就直接罢工——拒绝访问了:
D:\study\Apache\bin>ab -n 100 -c100 http://www.xxx.com;
This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
在上面的压力测试中,Apache使用的是默认配置,并没有经过任何优化措施处理。实际上,Apache在经过配置优化
后,只要服务器硬件够用,Apache服务器是能够撑起1000的并发量的。
6.ab进行app接口的压测:
ab -n 400 -c20 "http://www.xxx.com/api.php?sig=......";
将需要压测的接口,用 " " ;
7.ab进行post传参的压测
ab -n 400 -c20 -p parm.txt -T "application/x-www-form-urlencoded" http://localhost:3000/login
将 parm.txt放在和ab.exe相同的文件夹中,parm.txt中存放的是需要post格式传递的参数。
-T :post请求的head头。
stress& sysstat
下载下来,传进服务器,解压。cd 进路径,直接 ./configure 即可
Linux 性能工具安装部署的更多相关文章
- Linux性能工具介绍
		
l Linux性能工具介绍 p CPU高 p 磁盘I/O p 网络 p 内存 p 应用程序跟踪 l 操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l 应用程序的性能问题/功能问 ...
 - 程序员不可不知的Linux性能工具
		
前言 在实际开发中,有时候会收到一些服务的监控报警,比如CPU飙高,内存飙高等,这个时候,我们会登录到服务器上进行排查.本篇博客将涵盖这方面的知识:Linux性能工具. 一次线上问题排查模拟 背景:服 ...
 - pinpoint 应用性能管理工具安装部署
		
原文:http://www.cnblogs.com/yyhh/p/6106472.html pinpoint 安装部署 阅读目录 1. 环境配置 1.1 获取需要的依赖包 1.2 配置jdk1.7 ...
 - Linux系统批量化安装部署之Cobbler
		
说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...
 - Linux 性能工具 - sar学习
		
简介 sar是一款在linux下的性能工具,可以观察到CPU,内存,IO,运行队列,每秒上下文切换等信息. 软件工具安装 #Ubuntu sudo apt-get install sysstat # ...
 - 使用光盘iso实现Linux操作系统的自动安装部署
		
前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装.如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kicks ...
 - Linux性能测试工具安装全集
		
stress 下载地址:http://people.seas.harvard.edu/~apw/stress/ 一.stress工具安装:1.获取stress源码安装包(stress-1.0.4.ta ...
 - Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)
		
不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...
 - 免费开源的客服系统 Linux 服务器环境安装部署过程
		
最近因为项目需要,要找一款在线客服系统集成在 APP 中使用,而且涉及到生意开单,客服系统必须稳定可靠.另外甲方要求,必须支持 Linux 服务器环境. 我们以 Ubuntu 18.04 为例把安装部 ...
 
随机推荐
- Ubuntu中vi命令的编辑模式异常
			
今天更改Ubuntu软件源的时候,进入源文件的编辑模式时,发现删除键和编辑都不能正常使用,百度之后,知道是由于Ubuntu预装的是vim-tiny,而我们需要使用vim-full.在此记录下该问题以便 ...
 - hdu-2509-反nim博弈
			
Be the Winner Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
 - 46. 47. Permutations
			
求全排列. 1. 无重复元素 Given a collection of distinct numbers, return all possible permutations. For example ...
 - 浅谈musql中using的使用---高性能(三)
			
转载地址:https://blog.csdn.net/lppl010_/article/details/79429657 mysql中using的用法为: using()用于两张表的join查询,要求 ...
 - Python Django 前后端数据交互 之 后端向前端发送数据
			
Django 前后台的数据传递 严正声明:作者:psklf出处: http://www.cnblogs.com/psklf/archive/2016/05/30/5542612.html欢迎转载,但未 ...
 - strtus2 文件上传
			
struts2和spring mvc上传都是用 common-fileupload来实现 1.struts2上的方式需要在对应的Action,加上如下的属性以及get/set方法 private Fi ...
 - ECharts报表的使用
			
知道你们懒得手打网址,给你们贴上:http://echarts.baidu.com/echarts2/ 1.下载并解压之后,找到echarts-2.2.7\build\dist\echarts-all ...
 - poj 3984 -- 迷宫问题 深搜
			
迷宫问题 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, ...
 - 打开TestFlight并链接到具体的应用下载界面
			
在我们应用正式上线前,许多时候都会有小流量的测试,选取部分核心用户抢先试用,在TestFlight出来之前,一般都是通过企业证书打包,然后提供给用户下载地址,安装测试使用,这个有个不爽之处就是,企业i ...
 - DevExpress DateEdit 5 常见问题解决方法
			
1. 如何设置选择的日期大于当天? dateEdit1.Properties.MinValue = DateTime.Now.AddDays(1) 2. 如何做到只显示年.月? var formatS ...