NGINX如何实现高性能和可扩展性

2015年6月28日 没有评论

Owen Garrett是Nginx公司的产品总监,他在Nginx的官方博客上发表了一篇博文,说明了是哪些设计决策使得NGINX产品具备一流的性能和扩展能力。 NGINX的整体架构的特点是由一组进程协同工作: 主进程:负责执行特权操作,如阅读配置文件、绑定套接字、创建/通知协调(Signalling)子进程。 工作进程:负责接收和处理连接请求,读取和写入磁盘,并与上游服务器通信。当NGINX处于活跃状态时,只有工作进程是忙碌的。 缓存加载器进程:负责将磁盘高速缓存加载到内存中。这个进程在启动时运行后随即退出。 缓存管理器进程:负责整理磁盘缓存的...

分类: nginx 标签:

Linux下文件比较工具diff

2015年6月26日 没有评论

文件比较工作,win下有很多选择,神器beyond compare是一个不二选择,对于简单文本比较可以使用文本编辑器的插件,如notepad++的插件。 linux工具也有很多,版本控制工具多是使用diff原理来进行的。 对于现在的开发人员是幸福的,因为有各种版本控制工具可以使用,对于没有版本控制工具编写的代码,想知道代码的不同,diff是我知道的工具。 比如没有版本控制时的linux内核技术使用diff和patc来维护的。对于diff的输出结果经常表示看不懂,本文对这个详细说明。 如下三列,第一列为原文件old.txt,第二列示新文件new.txt,第三列示两个...

分类: linux 标签: , ,

nginx使用线程池提升9倍性能

2015年6月22日 9 条评论

众所周知nginx使用异步,事件驱动方法处理连接。这意味着nginx使用一个worker进程处理多个连接和请求,而不是每一个请求有一个专门的进程或着线程处理(像传统架构的服务器那样,例如apache)。为了实现这个目的,nginx使用非阻塞模式的socket和高效的方法epoll和kqueue。 因为高负荷进程的数量少且相对不变(通常1个cpu核心配1个进程),它内存消耗少,cpu时间没有浪费在任务切换上。这种处理请求的方式的优势也因为nginx而被大家所熟知。nginx能够成功处理数百万并发请求同时扩展性非常好。 不过异步,事件驱动方法还是有一个问题...

分类: nginx 标签: ,

mpd工坊感受

2015年6月13日 没有评论

13日,晴,北京是个蓝天白云,pm2.5个位数,百年一遇的好日子。 一大早爬出被窝去国家会议中心参加mpd的工坊,心想花钱参加的会议总会有点收获吧(虽然钱是公司出的),不过槽点太多。 首先举办方组织上, 1.地点找不到,也不通知从哪个门进去,国家会议中东南西北,abcdef各种门,你让我去哪找。 2.没有茶歇,午饭20块钱的水平。不说去个盘古,咱起码吃个像样的自助吧,回去咱也跟公司说来的值,让公司来年再派人参加的。 再说培训内容上 尼玛说好的多少多少小时干货,几页ppt,blabla一个多小时就完了,只讲讲自己用哪些工具,真当...

分类: 技术 标签:

linode下一个接力者,这次是电源问题

2015年5月30日 4 条评论

从网易断网、支付宝断网、到携程,一直当笑话听。 今天linode也跟着出现问题了,由于电力问题导致机房中断服务,大概8个小时。 虽说博客比不了大公司,也体验了一把服务不能用的待遇。 Update - We have about 13 damaged servers left and are working on transplanting their drives to hot-spare servers. May 30, 09:08 UTC Update - Most Linodes in Fremont should be booted at this time. We continue to work on the servers that were damaged due to the power outage. May 30, 08:04 UTC Update - Power was restored at a...

分类: 技术 标签:

mac上切换jdk版本

2015年5月19日 没有评论

在~/.profile中增加如下内容 alias setJdk6='export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)' alias setJdk7='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)' alias setJdk8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)' 切换java_home为1.6版本 setJdk6 切换java_home为1.7版本 setJdk7 切换java_home为1.8版本 setJdk8 JDK的安装路径 jdk 1.6 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk jdk 1.7 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/ jdk 1.8 /Library/Java/JavaVirtualMachines/jdk1....

分类: 技术 标签: ,

如何在 Mac OS X 10.10 上安装 Java?

2015年5月19日 1 条评论

java1.6版安装 http://support.apple.com/kb/DL1572 因为并非所有用户都用得着 Java ,所以在默认状态下 OS X 不预装 Java , 如果你需要的话可以手动安装. 到苹果官网下载 http://support.apple.com/kb/DL1572 http://support.apple.com/downloads/DL1572/en_US/JavaForOSX2014-001.dmg 安装后在终端输入 java -version 如果显示版本就说明安装好了. java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode) 如果显示如...

分类: 技术 标签:

一个关于分页的面试题

2015年5月1日 5 条评论

在网上看到面试中考分页的帖子,结合自己的想法,集合一下,欢迎讨论。 分页是各式各样系统开发过程中必不可少的环节,普通web应用数据量小、访问量小,分页可以用简单的方式来实现,一般是通过startrow+pagenum来实现,甚至可以提前生成静态页面,这样数据库基本没有压力,缺点是数据变动时要重新生成所有列表页,而且不能实时显示数据的变化。 不过还好的是对于大多数的应用能够实现需求即可,不必过多考虑优化。 互联网公司的海量数据,情况就变得不一样了,更多考虑的是性能和效率,加载速度提高一点点,就意味着用户体验的提升,...

分类: mysql, oracle 标签:

当下比较火的两个赚钱的事

2015年4月27日 1 条评论

2015年前几个月,有两个词特别印象深刻。1培训、2股票。 不断发现各种培训开始络绎不绝的出现,各种各样的人都出来搞培训,各种app也是横空出世; 大妈们都不去跳广场舞跑去开户导致中登都要升级的股市,火爆程度可想而知。 搞培训的比学培训内容的人赚钱 搞培训的普遍都会这样宣传:“学的好的是我的功劳,学的不好的是你没努力” 努力了做什么都会增加成功的概率,培训能给人更快速的掌握技能的方法,但这并不是说,你像个算命先生一样见人就说你干这个能发财,干吧、有执行力一定能成,不成就是你太懒。每个人有每个人适合的职业,每...

分类: 技术 标签: ,

批量替换sql中的id从指定的值开始

2015年4月22日 1 条评论

当数据库中的某个字段(例如ID)是整型,那么当新插入数据的时候需要从目前已有的数据库总最大的值加1开始排列。 当前生产数据库的id最大值为150,那么上线时候需要从151开始编号,当然可以使用sequence自增是一种方式。 这里介绍的是手动修改sql,保存如下内容到online.sql中 insert into ct values(1, 'sss', 2, 4); insert into ct values(1, 'sss', 2, 4); insert into ct values(1, 'sss', 2, 4); insert into ct values(1, 'sss', 2, 4); insert into ct values(1, 'sss', 2, 4); insert into ct ...

分类: linux 标签: