性能测试:
1. 首先查看一下服务器的硬件性能
free  -m  ----》查看一下内存的情况
lscpu或者cat  /proc/cpuinfo     ------à查看一下cpu的情况
2. 测试一下硬盘的性能
hdparm   -t    /dev/sda
3. ping一下,主要为了检测网络的延时,看time=  ms(注意不要通过无线网去测网络,最好是直连)
4. wget  http://     下载一个文件试下,主要为了检测一下带宽可以达到多高。
5. 利用ab命令(Apache附带的一个测试工具,全称叫做Apache benchmark)对网站进行压力测试。
ab  -c 10 –n 1000  http://10.1.1.1/index.php
 
-c参数是指定并发量,就是我一次对这个网站发起多少个连接。
-n 测试的次数,比如说我们用10的并发量向服务器去请求1000次的HTTP请求,相当于我们访问了1000次指定的网页。

LAMP优化:
优化步骤:
1. 找到性能的瓶颈点,通常问题不是出现在Apache上面,而是在php的解析上面,所以php的优化是lamp优化里面的关键一环。因为php不像Java,.net,c,c++这些语言它在运行前都需要提前编译好,而php是一个脚本语言,每次运行的时候都需要进行编译。
2. 理解php的执行流程对于LAMP架构的优化至关重要,如下:
用户通过浏览器-----Apache--mod_php--编译php代码----执行并返回----返回给Apache
在没有进行任何优化的情况下,用户每次去访问个php的动态页面都要编译一次,把大多数的时间都花在编译上面了,而不是执行并返回这个步骤上面。所以我们要利用php加速器。
3. php加速器的原理:
用户通过浏览器-----Apache--mod_php--编译并缓存php代码----执行并返回----返回给Apache
也是这样一个步骤,只是在编译php代码这个部分让它只编译一次,并且缓存下来,这样就可以做到不管多少次请求,10次,100次,1000次我就不需要重复去编译,从而大大节省大量性能和时间,以提高php解析的速度。
4. 常用的php加速器
APC(Alternative PHP Cache)
eAccelerator
xCache
综合性能(速度和内存使用率)比较好的是eAccelerator
  具体步骤:
1. yum groupinstall –y “Development Tools”
2. 去pkgs.org网站下载php-devel的包
3. 去eAccelerator.net下载eAccelerator软件包
4. 解压,切换进eaccelerator-master目录里,在编译之前要运行phpize这个命令,然后再编译,make,make install.
然后具体配置,我们先在/etc/php.d/目录下新建一个eaccelerator.ini的配置文件,通过php的扩展,详见:
https://github.com/eaccelerator/eaccelerator
做完了如何验证使用了eaccelerator加速器呢?
浏览器输入http://ip/phpinfo.php查看
5.Apache服务器的优化
prefork模式组的参数
6.修改php.ini里面的选项:
upload_max_filesize,post_max_size(设置允许上传的文件的大小)
memory_limit(设置一个php脚本最多能够占用的内存)
 
 
7.修改eaccelerator.ini配置文件:
eaccelerator.shm_size(设置eaccelerator的共享内存的大小,可以调大一些)
 
  

LAMP架构性能测试+php优化的更多相关文章

  1. LNMP 与 LAMP 架构的区别及配置解决方案

    2014-12-31 10:33| 发布者: digitser| 查看: 5618| 评论: 0|原作者: liangsheng 摘要: LNMP 与 LAMP 架构的区别及配置解决方案 LNMP 的 ...

  2. Apache web服务器(LAMP架构)(week3_day4)--技术流ken

    apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...

  3. 末学者笔记--apache编译安装及LAMP架构上线

    apache介绍 一.Apache的三种工作模式 Apache一共有3种稳定的MPM模式(多进程处理模块),它们分别是prefork.worker.event.http-2.2版本的httpd默认的m ...

  4. Apache web服务器(LAMP架构)

    Apache web服务器(LAMP架构) apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 ...

  5. 部署LAMP架构及其应用

    部署企业LAMP架构 (一)首先安装Apache服务,具体请见另一篇关于Apache的博文. (二)安装MySQL数据库,具体请见另一篇关于LNMP的博文. (三)构建PHP运行环境 1.安装PHP ...

  6. Httpd服务进阶知识-LAMP架构概述

    Httpd服务进阶知识-LAMP架构概述  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LAMP架构概述 1>.什么是LAM(M)P架构 L: linux A: apa ...

  7. LAMP架构介绍

    介绍一下LAMP架构 LMAP即Linux+Apache+Mysql/MariaDB+Perl/PHP/Python的首字母缩写.这是一组常用来搭建动态网站或者服务器的开源软件.它们本身都是各自独立的 ...

  8. Apache web服务器(LAMP架构)

    1.apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http ...

  9. linux运维、架构之路-Lamp架构部署

    一.Lamp架构原理 二.Lamp架构软件安装 1.apache安装脚本 #!/bin/sh cd /server/tools/ yum install zlib-devel -y wget http ...

随机推荐

  1. nowcoder907B n的约数

    题意 t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 \(t \le 500,n \le 10^{19}\) 思路 首先可以想到将n质因数分解.即\(n= \prod\limi ...

  2. 【转】web.xml详解

    转载:https://www.cnblogs.com/vanl/p/5737656.html. 一:web.xml加载过程 简单说一下,web.xml的加载过程.当我们启动一个WEB项目容器时,容器包 ...

  3. MySQL实战45讲学习笔记:第八讲

    一.今日内容概要 我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事 ...

  4. Log-Structured Merge Tree (LSM Tree)

    一种树,适合于写多读少的场景.主要是利用了延迟更新.批量写.顺序写磁盘(磁盘sequence access比random access快). 背景 回顾数据存储的两个“极端”发展方向 加快读:加索引( ...

  5. javaSript 处理电脑和浏览器pc端缩放对页面的影响

    由于用户的个人习惯或其他原因,可能会调整到电脑上的缩放比例或者浏览器的缩放比例,如果访问页面会看起来比较不好看, 电脑上的缩放: 浏览器上的缩放: 解决方法: function detectZoom( ...

  6. java8 关于Set集合的线程安全使用

    场景:并发多线程,往Set集合中存放数据时,发现最终的数量结果不对,经过排查,没有使用线程安全的Set导致 哈哈,不会描述,代码解释一切,下面代码,使用的 Sets.newHashSet() 和 Co ...

  7. c++ 使用 vcpkg

    1. 打开下载地址:https://github.com/Microsoft/vcpkg 2. 直接下载到本地某个盘 3. 配置环境变量: 4. 打开下载到本地的vcpkg有可能叫vcpkg-mast ...

  8. 提高性能,MySQL 读写分离环境搭建

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  9. golang --os系统包详解

    环境变量 Environ 获取所有环境变量, 返回变量列表 func Environ() []string package main import ( "fmt" "os ...

  10. golang 学习笔记 -- struct interface的使用

    一个 interface 类型定义了一个方法集做接口. 区分goalng的方法和函数 func go() { fmt.Println('go to home') } 这是函数 type car str ...