缓存服务器

Nginx深度优化(二)

不打扰是莪最后的温柔 提交于 2019-12-05 13:28:08
Nginx作为现在最流行的Web应用程序,对其优化十分重要。通过 Nginx初步优化 、 深度优化Nginx(一) 已经可以对Nginx进行大量的优化来满足基本的需要,但是作为一名合格的运维工程师来说,仅仅掌握以上对Nginx进行优化的方法显然是远远不足的。所以就需要本篇博文进一步对Nginx进行优化。 博文大纲: 一、安装nginx服务器 二、Nginx配置优化 (1)Nginx 运行工作进程个数 (2)Nginx 事件处理模型 (3)开启高效传输模式 (4)连接超时时间 (5)fastcgi调优 (6)expires 缓存调优 (7)防盗链 (8)内核参数优化 一、安装nginx服务器 获取 Nginx软件包 [root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel //安装nginx依赖 [root@localhost ~]# useradd -s /sbin/nologin -M nginx //创建nginx用户 [root@localhost ~]# tar zxf nginx-1.14.0.tar.gz -C /usr/src [root@localhost ~]# cd /usr/src/nginx-1.14.0/ [root@localhost nginx-1.14.0]# .

mysql学习笔记一

吃可爱长大的小学妹 提交于 2019-12-05 12:28:10
学习的文章: 丁奇的mysql基础课1 说明:{ mysql学习笔记N } 都是基于?各章节的文章,若有转载请务必注明出处 拿到一个问题,从高纬度出发,看清问题的前因后果,能够不断提高自己的认知水平。 下面记录下我的mysql学习笔记,按照作者思路走一遍。 start:首先拿到一个简单的查询语句 mysql> select * from T where ID=10; 一个查询,执行之后返回一条结果。发生了啥?为啥一串带特殊语法的句子能够从mysql返回对应的结果?我是要背诵这种语法来解决后续问题?这是原文作者给我的启发,技术要追根究底,这是一种态度。 引用mysql的架构图: 可以看到,从我这里主动查询的行为出发,经过了两个层次:server和db。可以形成一个直观的理解,就是server层给你做语义分析,去命中db的数据,然后返回结果。这是一个大体的认识。 那么细分下来,根据上图的直观显示,我们可以书写上面那个简单查询语句的流程了 1.mysql的连接 需要用户密码,服务地址的一个验证,打开通道。如果是直接使用mysql server服务器控制台操作,这个命令我们会非常熟悉:mysql -u -p,u->user,p->password,这个比较好理解,就是一个登录验证。。。要使用这个数据库,必须得要身份合法对吧 当然这里有个细节要注意:登录成功,连接器会到权限表里面

Laravel 应用性能调优

橙三吉。 提交于 2019-12-05 11:58:50
1). 调优 Laravel 中的一下调优和测试方式 2). 方式 这次性能测试方案中用到的优化技巧主要基于 Laravel 框架本身及其提供的工具。 关闭应用debug app.debug=false 缓存配置信息 php artisan config:cache 缓存路由信息 php artisan router:cache 类映射加载优化 php artisan optimize 自动加载优化 composer dumpautoload 根据需要只加载必要的中间件 使用即时编译器(JIT),如:HHVM、OPcache 使用 PHP 7.x 除了以上优化技巧之外,还有很多编码上的实践可以提升 Laravel 应用性能,在本文中暂时不会做说明。(也可以关注我的后续文章) 1. 关闭应用 debug 打开应用根目录下的 .env 文件,把 debug 设置为 false。 APP_DEBUG=false 2. 缓存配置信息 php artisan config:cache 运行以上命令可以把 config 文件夹里所有配置信息合并到一个 bootstrap/cache/config.php 文件中,减少运行时载入文件的数量。 php artisan config:clear 运行以上命令可以清除配置信息的缓存,也就是删除 bootstrap/cache/config.php 文件

面试-redis题目

我们两清 提交于 2019-12-05 11:37:29
作者:TD李 链接:https://zhuanlan.zhihu.com/p/57473266 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1、什么是Redis? Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令

ぐ巨炮叔叔 提交于 2019-12-05 11:35:34
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接: https://app.yinxiang.com/shard/s17/nl/19391737/9652651a-7449-4e8e-b77e-1c60ea8b7d12 本篇主要说明以下问题: 1、服务器 buffer/cache 的产生原因和释放buffer/cache 的两种方式(自动 & 手动) 2、 生产环境遇到服务 buffer/cache 过高如何排查是由那几个进程引起的( hcache ,lsof 的使用方式 ) 服务器 buffer/cache 的产生原因和释放buffer/cache 的两种方式(自动 & 手动) 1、什么是buffer/cache ? buffer/cache 其实是作为服务器系统的文件数据缓存使用的,尤其是针对进程对文件存在 read/write 操作的时候,所以当你的服务进程在对文件进行读写的时候,Linux内核为了提高服务的读写速度,则将会把文件放在此处的 buffer/cache 中进行缓存使用,由于 Linux服务的特点便是任何事物都会以文件的形式进行存在,所以你会发现不管你是否对文件做了大规模的读写,机器的 buffer/cache 是一直都存在的,并且持续的增高不下,这是因为服务器所产生的网络连接也好,用户协议的(UDP)套接字也好

Visual Studio 2008 sp1

三世轮回 提交于 2019-12-05 11:17:35
Microsoft Visual Studio 2008 Service Pack 1 网页 http://www.microsoft.com/downloads/details.aspx?FamilyId=27673C47-B3B5-4C67-BD99-84E525B5CE61 直接下载(e文版) http://download.microsoft.com/download/a/3/7/a371b6d1-fc5e-44f7-914c-cb452b4043a9/VS2008SP1ENUX1512962.iso 如果以前装过零星的补丁,安装程序会要求你先用这个补丁把以前打过的补丁卸掉……囧 Visual Studio 2008 Service Pack Preparation Tool http://www.microsoft.com/downloads/details.aspx?FamilyId=A494B0E0-EB07-4FF1-A21C-A4663E456D9D http://download.microsoft.com/download/9/9/b/99bbd5ef-90a3-41fd-9df0-176988522eea/VS2008-PatchRemovalTool-x86.exe 另外准备6.5G以上的空间…………囧 MSDN Library for Visual

一个页面从输入URL到加载显示完成,发生了什么?

二次信任 提交于 2019-12-05 10:55:05
面试经典题——URL加载 一、涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns、http):DNS解析成IP并完成http请求发送; 传输层(tcp、udp):三次握手四次挥手模式建立tcp连接; 网络层(IP、ARP):IP寻址; 数据链路层(PPP):将请求数据封装成帧; 物理层:利用物理介质传输比特流(传输的时候通过双绞线、电磁波等) OIS七层框架 :多了两层即,会话层(处理两个通信系统中交换信息的表示方式)和表示层(管理不同用户和进程之间的对话)。 get和post的区别 : get产生一个tcp数据包,post产生两个 get请求时会把headers和data数据一起发送出去; post请求时,浏览器先发送headers,服务器100继续,浏览器再发送data。 DNS查询得到IP 请求信息:首先查看域名的本地DNS缓存,该缓存存储计算机最近检索到的信息,如果计算机不知道答案,那么就需要执行一个DNS查询来查找答案; 询问递归式DNS服务器: 如果信息不存储在本地,计算机会联系您的ISP(网络提供商)的递归DNS服务器; 这些专用计算机会为你执行一个DNS查询工作; 递归服务器有自己的缓存,所以这个查询过程通常在这里完成,并将信息还回给用户; 询问根域名服务器 如果递归服务器没有答案,他们会查询根域名服务器; 根域名服务器是一种计算机

前端性能优化

故事扮演 提交于 2019-12-05 10:40:47
前端性能优化,目的是为什么?让用户有更友好的体验,让服务商节省可观的资源。 对优化方向进行分类,直接来看表: 优化方向 优化手段 请求数量 CSS Sprites,合并脚本和样式表 请求带宽 使用Gzip压缩传输文件,精简JS文件 缓存利用 使用http缓存,使用CDN,ajax,减少DNS查找 页面结构 样式表放顶部,脚本放底部 代码校验 避免CSS表达式,避免重定向 减少Repaint和Reflow 设置class,脱离文档流,减少dom操作 下面具体解释其中一些优化点: CDN Content Delivery Network 即内容分发网络,CDN把 内容分发 到距离用户近的缓存服务器,然后DNS托管(把DNS解析的地址改成CDN提供的),DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现 用户就近访问 ,提高网站渲染速度和性能。 减少repaint和reflow 回流与重绘 通过设置class的方式,而不是多次修改元素style属性。 有动画效果的元素可以将position属性设为fixed或absolute。 权衡速度的平滑性,函数节流(自己的理解) 减少对DOM元素的查询和修改,查询时可将其赋值给局部变量。 CSS引用 尽量使用link代替@import,因为link是在页面加载时同时加载,import是等页面加载完再加载。 有关缓存

HTTP缓存机制

天涯浪子 提交于 2019-12-05 10:04:39
Web 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。 浏览器缓存也包含很多内容: HTTP 缓存、indexDB、cookie、localstorage 等等。这里我们只讨论 HTTP 缓存相关内容。 在具体了解 HTTP 缓存之前先来明确几个术语: 缓存命中率:从缓存中得到数据的请求数与所有请求数的比率。理想状态是越高越好。 过期内容:超过设置的有效时间,被标记为“陈旧”的内容。通常过期内容不能用于回复客户端的请求,必须重新向源服务器请求新的内容或者验证缓存的内容是否仍然准备。 验证:验证缓存中的过期内容是否仍然有效,验证通过的话刷新过期时间。 失效:失效就是把内容从缓存中移除。当内容发生改变时就必须移除失效的内容。 浏览器缓存主要是 HTTP 协议定义的缓存机制。HTML meta 标签,例如 <META HTTP-EQUIV="Pragma" CONTENT="no-store"> 含义是让浏览器不缓存当前页面。但是代理服务器不解析 HTML 内容,一般应用广泛的是用 HTTP 头信息控制缓存。 浏览器缓存分类 浏览器缓存分为强缓存和协商缓存,浏览器加载一个页面的简单流程如下: 浏览器先根据这个资源的http头信息来判断是否命中强缓存。如果命中则直接加在缓存中的资源,并不会将请求发送到服务器。 如果未命中强缓存

常见性能优化策略的总结

感情迁移 提交于 2019-12-05 09:38:27
本文要感谢我职级评定过程中的一位评委,他建议把之前所做的各种性能优化的案例和方案加以提炼、总结,以文档的形式沉淀下来,并在内部进行分享。力求达到如下效果: 1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始。 2. 有助于开阔视野,除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。 文章在内部分享后,引起强烈分享,得到了不少同事和朋友的认可和好评,觉得对日常的工作有很好的指导作用。考虑到这些经验可能对业界同行也有帮助,所以在美团点评技术团队博客公开。 代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视。很多技术人员拿到一个性能优化的需求以后,言必称缓存、异步、JVM等。实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略。有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如 for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次 等。 数据库 数据库的调优,总的来说分为以下三部分: SQL调优 这是 最常用、每一个技术人员都应该掌握基本的SQL调优手段(包括方法、工具、辅助系统等) 。这里以MySQL为例,最常见的方式是,由 自带的慢查询日志或者开源的慢查询系统