中间件监控之Apache
补 系统架构

Cdn 内容分发网络 全称是Content Delivery Network
面试:Cdn 的时间算法,基于什么的算法
面试题:大数据迁移怎么迁移,比如你服务器上有一个10个G的日志文件,你怎么去迁移 (01:42分左右)
传之前 校验MD5 传之后 再校验MD5 确保传过去的数据一致
保证完整性
根据网络传输效率,考虑怎么分片 服务器直接用scp 命令
传输完成后校验MD5 然后再组装
存储分片(某个扇区损坏不影响其他扇区) 多线程
速度快,安全系数高
所有的文件都是二进制形式保存,取决于你以什么形式打开
利用分片传输+多线程传输的机制
1.分片,把大内存的数据分成n片
2.md5 算法校验,在传输前传输后分别校验,检查文件传输正确性、完整性后 再组装
3.多线程传,使用时间为单线程的n分之一
https://blog.csdn.net/ltx06/article/details/70162107
如果需要集成php 用lampp 集成包
Find / -name httpd 查找命令 / 根目录下的所有路径 -name 通过名字
Find / |grep httpd 模糊查找
Yum 安装
apache /etc/httpd 配置文件 为 httpd.conf 可执行文件
/usr/sbin/httpd 启动apache service httpd start|restart|stop (yum 安装会作为一个系统服务)
B,使用安装包安装
C,Lampp 自带的httpd
bin 目录所有可执行文件
/opt/lampp/etc lampp 配置文件
/opt/lampp/etc/extra 扩展的配置文件
查看Apache 版本:
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安装的apache的版本信息等细节

配置文件 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf
配置文件常见修改的地方:
ServerRoot "/opt/lampp"
Listen 监听 直接提供端口
Listen 9090
3、Apache 主要目录和配置文件
命令:
配置文件 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf








查看进程
ps -ef ps -aux
ps -ef


Root 用户启动主进程的同时会启动一些子进程

所以 部署php项目,将项目代码放到/opt/lamp/htdocs该目录下
访问项目时,http://ip:端口号/项目名 便可访问
如果无法访问:1,查看该项目是否放至在apache默认web站点目录路径下;2,项目名是否正确 ( bbs 文件名为upload 所以需要先改名为bbs)
Php 项目都是热启动 项目不停止运行
1、拉代码
2、修改配置文件
数据库迁移的时候需要手动修改该文件
请求日志 看access_log
Apache 扩展文件

重点:Apache 工作模式
用的系统的apache /opt/lampp/etc/extra 下的httpd-mpm.conf
web 服务器Apache 目前一共有三种稳定的MPM(Multi -Processing Module,多进程处理模块)模式。它们分别是prefork ,worker和event
查看当前工作模式
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安装的apache的版本信息等细节
中Server MPM 字段
1、Prefork 模式 单进程单线程,一对一

Prefork MPM是一个非常稳定的模式,Apache 在启动之初,会预派生fork 一些子进程,然后等待请求进来,并且总会保持一些备用的子进程。
同时派生出的每个子进程只有一个线程,在一个时间点内只能处理一个请求。Prefork MPM在效率上要比Worker MPM高,但是在内存使用方面也会大很多。
它并不擅长处理高并发请求,在这种场景下,它会将请求放进队列中,一直等到有可用进程,请求才会被处理。
长连接:保持的时间比较长,比如视频
参数详解:

StartServers //指定服务器启动时建立的子进程数,默认为5
MinSpareServers //指定空闲子进程的最小数量,默认为5.如果当前空闲子进程数小于配置的数量则Apache会以最大每秒一个的速度创建新的子进程
MaxSpareServers //指定空闲子进程的最大数量,默认为10.如果当前有超过设置的最大进程数则会杀死多余的进程,如果设置的比MinSpareServers 小,则Apache会默认修改为MinSpareServers +1
MaxRequestWorkers //限定服务器同一时间内客户端最大接入的请求数量,默认是150.任何超过了该限制的请求都要进入等待队列,
一旦一个个连接被释放,队列中的请求才将得到服务。在Apache2.3 前又叫MaxClients
MaxConnectionsPerChild //每个子进程的在其生命周期内允许最大的请求数量,如果请求总数已经达到这个数值,子进程将会结束;
如果设置为0,子进程将永远不会结束。若该值设置为非0值,可以防止运行PHP导致的内存泄漏(结束以后会释放内存)。
一个请求结束后会保留一些“脏数据”,连接的请求越多脏数据越多,到达一定程度后会结束该进程,释放内存。
ServerLimit 2000 //MaxRequestWorkers(MaxClients)最大是256个线程,如果需要更大就需要加上该参数了。
这个参数的最大值是2000,如果需要更大需要编译apache。生效前提:必须放在其他指令的前面

进程数与cpu 有关 不可能全部占满、
思考:那要是避免排队的情况 可以直接改 prefork的数值吗?
2、Aache工作模式-Work模式 单进程,多线程 一对多

参数详解:
StartServers //服务器启动时创建的子进程数
MaxClients //
MinSpareThreads //最小空闲线程数,这个MPM将基于整个服务器监控空闲线程数。假如服务器中的空闲线程数太少,则将会创建新的空闲线程
MaxSpareThreads //最大空闲线程数。这个MPM将基于整个服务器监控空闲线程数。假如服务器中的总的空闲线程数太多,子进程将杀死多余的空闲线程。最大
空闲线程数的取值范围是有限制的。Work 需要其大于等于MinSpareThreads 和ThreadsPerChild 的总和
ThreadsPerChild //每个子进程建立的常驻执行线程数,子进程在启动时建立这些线程后就不会再建立新线程了
MaxRequestsPerChild //允许同时伺服的最大接入请求数量。任何超过该限制的请求都将进入等候队列
每个进程能处理多少个请求,处理完成后则会死掉

思考:现有如下配置
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25 固定为25不可变
MaxRequestsPerChild 0 每个进程能处理多少个请求,处理完成后则会死掉 释放内存
</IfModule>
4个进程 每个进程允许25个线程 总共100个 不符合maxsparethreads 75
则会杀掉一个进程 则代表一次性杀掉了25个线程
符合maxsparethreads
在25 ~ 75 之间 不会做任何修改
如果不满足最小的minsparethreads
25 则会创建一个进程
Work 模式不安全 一个进程死掉后子线程全部被杀掉
3、Apache工作模式-Event模式 (具体参考ppt)

Apache 工作模式切换

切换工作模式 修改文件名即可 默认是prefork
举例说明:把
这个改为httpd名,工作模式变为work
用同一个配置文件,端口一定会被占用
重点:Apache 监控
一、如何获取apache监控参数
Vi /etc/httpd/conf/httpd.conf

SetHandler 加载某个模块
order 先执行deny
重启apache 项目是实时读取的,但自身配置不是,所以需要重启
浏览器输入:http://ip/server-status

Apache 优化

中间件监控之Apache的更多相关文章
- signalfx的中间件监控指标so cool
signalfx的中间件监控指标so cool www.jianshu.com 对于我们做运维的来说,监控是最基本的东西,不过在初创公司很多计划是跟不上项目架构变化的,项目中会不断加入各种服务和组 ...
- 中间件监控之tomcat
中间件主要目的:能够支持更多人去访问 一.Tomcat 介绍 Tomcat 是一个小型的轻量级应用服务器,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP页面和Serv ...
- 中间件漏洞之Apache
中间件之Apache漏洞 我们常见的中间件有IIS.Apache.Nginx,其中Apache中间件有什么漏洞呢? Apache 解析漏洞: 漏洞原因:该解析漏洞属于用户配置问题(mime.types ...
- 【中间件安全】Apache 安全加固规范
1. 适用情况 适用于使用Apahce进行部署的Web网站. 2. 技能要求 熟悉Apache配置文件,能够利用Apache进行建站,并能针对站点使用Apache进行安全加固. 3. 前置条件 1. ...
- 监控分析——Web中间件
发现 中间件监控看是否有性能瓶颈 核心:主要看中间件的线性池进程池有没有排队情况,请求是否处理及时就OK Apache 以前php都是用apache,现在基本用nginx了. 首先自己启动apache ...
- 教你如何监控 Apache?
什么是 Apache? Apache 是一款 HTTP 服务器软件,现在更名为 "http",而 Apache 则成了一个(包含httpd的项目)巨大的基金组织,根据习惯后文都用 ...
- cactiez v11添加对mysql数据库、apache系统进行监控
cactiez默认已经安装了mysql监控的模板,需要我们对服务器端和被监控的mysql客户端进行配置才能生效. 被监控的Mysql客户端: 如cactiez的IP为192.168.0.8 #添加一个 ...
- 通过Centreon监控apache、MySQL、Hadoop服务状态
在上面的章节中,只是简单介绍了Centreon的几个基础监控项,例如添加主机.服务等,这些对于一个监控系统来说是远远不够的,本节将重点介绍对一些扩展服务的监控,也就是对一些常见应用的监控. 一. Na ...
- Zabbix 监控MySQL、Apache、Nginx应用监控
zabbix对第三方应用软件的监控,主要有两个工作难点,一个是编写自定义监控脚本,另一个是在编写模板并导入zabbix web中,编写脚本这个要根据 监控需求定制即可,而编写模板文件有些难度,不过网上 ...
随机推荐
- 谈谈node(1)
node的出现,给了全栈工程师,一个绝佳的机会. node给我们带来的是更低的硬件成本来完成更高需求以及用户体验感,一台8G内存服务器如果用传统架构,那么最多可驱使4000台同时访问,如果 ...
- PHP高级教程-Error
PHP 错误处理 在 PHP 中,默认的错误处理很简单.一条错误消息会被发送到浏览器,这条消息带有文件名.行号以及描述错误的消息. PHP 错误处理 在创建脚本和 Web 应用程序时,错误处理是一个重 ...
- Java多线程(1) 创建
一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下以下这张较为经典的图: Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Threa ...
- MySQL的各种SHOW
. SHOW语法 13.5.4.1. SHOW CHARACTER SET语法 13.5.4.2. SHOW COLLATION语法 13.5.4.3. SHOW COLUMNS语法 13.5.4.4 ...
- ElasticSearch异常归纳(能力工场小马哥)
异常1: can not run elasticsearch as root [WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-2] ...
- js 数组清空 方法 汇总
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- java 复制Map对象(深拷贝与浅拷贝)
java 复制Map对象(深拷贝与浅拷贝) CreationTime--2018年6月4日10点00分 Author:Marydon 1.深拷贝与浅拷贝 浅拷贝:只复制对象的引用,两个引用仍然指向 ...
- sqlplus命令手冊
show和set命令是两条用于维护SQLPlus系统变量的命令 : SQL> show all --查看全部系统变量值 SQL>show user --显示当前连接用户 SQL>sh ...
- 【asp.net Core 2.0 初步探索】
首先下载 对应的SDK 和runtime https://www.microsoft.com/net/core#linuxubuntu ---------当前为 1.1 稳定版本 ...
- 在MyEclipse中改动jsp页面的默认打开方式
在JavaWeb项目中.当然有非常多jsp页面,可是我发现,双击打开jsp页面总是卡机.相对于打开其它java文件而言非常慢,感觉非常不舒服.MyEclipse中默认打开jsp页面是以可视化的形式展现 ...