Author: admin

构建C1000K的服务器(1) – 基础

著名的 C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10K 已经不是问题了, 任何一个普通的程序员, 都能利用手边的语言和库, 轻松地写出 C10K 的服务器. 这既得益于软件的进步, 也得益于硬件性能的提高.

现在, 该是考虑 C1000K, 也就是百万连接的问题的时候了. 像 Twitter, weibo, Facebook 这些网站, 它们的同时在线用户有上千万, 同时又希望消息能接近实时地推送给用户, 这就需要服务器能维持和上千万用户的 TCP 网络连接, 虽然可以使用成百上千台服务器来支撑这么多用户, 但如果每台服务器能支持一百万连接(C1000K), 那么只需要十台服务器.…

C1000K之Libevent源码分析

简介

说到异步IO,高并发之类的名词, 可能很多人第一反应就是 select, poll, epoll, kqueue 之类的底层代码库。 但是其实除非你要写一个 Nginx 性能级别的服务器, 否则直接使用 epoll 之类的还是太过底层, 诸多不便,要榨干整个异步编程的高并发性能还需要开发很多相关组件, 而 Libevent 就是作为更好用的高性能异步编程网络库而生, 他帮你包装了各种 buffer 和 event, 甚至也提供了更加高层的 http 和 rpc 等接口, 可以让你脱离底层细节,更加专注于服务的其他核心功能的实现。 当然,要真正用好它,还是需要懂不少关于他的实现原理。

如果是第一次接触 Libevent 的可以先看一篇非常好的入门文章: Libevent-book , 文章主要从 C10K 问题的发展循序渐进, 分别讲了在高并发连接的情况下, 多线程解决方案, 多进程解放方案会遇到的问题, …

        

C1000k 新思路:用户态 TCP/IP 协议栈

现在的服务器支撑上百万个并发 TCP 连接已经不是新闻( 余锋2010年的演讲 , ideawu  的  iComet 开源项目 , WhatsApp 做到了 2.5M )。实现 C1000k 的常规做法是调整内核参数,提高文件数,降低每个连接的内存消耗( 参考 ideawu 的博客 )。

在今年的  BSDCan2014  会议上,  Patrick Kelsey  介绍了把 FreeBSD 9.x 的 TCP/IP 协议栈移植到了用户态( slides ,  github.com/pkelsey/libuinet ),并用于  WANProxy  项目。在用户态运行 TCP/IP 协议栈意味着并发 TCP …

ubuntu上安装phalcon相关问题

按照官网上安装的方法安装phalcon,发现加载不上,出现了:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/phalcon.so' - /usr/lib/php5/20100525+lfs/phalcon.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0

解决方法就是在apache/conf.d文件夹中添加一个phalcon配置文件:

例如里面有一个10-pdo.ini文件,

就添加一个配置文件:20-phalcon.ini,里面内容是:extension=phalcon.so

注意:phalcon文件名的数字前缀一定要比pdo文件名的数字前缀要大,保证其是在pdo之后加载.…

    

PHP过往及现在及变革

2015-05-27 优才网

众所周知,PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。其灵活简单成本低廉深受互联网公司青睐,初期大量公司使用它进行快速迭代高效迭代出大量产品服务,但是当流量增长后他的弊端会渐渐展现,很多公司为此吃过不少他的苦头。但往往都是短期放弃后,待后端底层数据完善后又用起来,让人又爱又恨,其中发生了什么,是什么造成这个状态,下面我简单介绍下PHP目前架构中碰到的各种问题及解决方法来慢慢分析事情的原因经过结果,当然最后还要介绍下PHP新的技术革命的并发编程开始。

CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

准备篇

1、配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙
-A INPUT -m state --state NEW 
                

php修改代码不生效的问题 opcache缓存

php修改代码不生效的问题 opcache缓存

大伙应该都知道,php是动态语言,每次运行时,都会重新编译,这会很耗性能的。而Zend OPcache 则是通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。简单的了解了Zend OPcache作用后,那么就去php配置文件看看了,果真,在配置文件的最下方返现这么写配置信息…