这些天看到了lwan官网上号称作者历经三年打造的高性能轻量级可扩展Web Server,号称具备了低内存占用、最小化的系统调用次数、对静态文件根据大小智能的处理,预缓存目录信息以及7200行主体代码等特点,到今天(2014年12月26日)为止,Github已经收集到了2000+个star。

其中最吸引我的就是静态文件能达到18w qps,加上它较小的代码体积,于是想要试用一下。

阅读全文 »

问题背景

在处理Oracle因为CI的持续连接引起Oracle进程用尽的问题之后,更新代码时忘记修改配置,导致了再次出现进程耗尽的问题,在处理时发现居然无法关闭数据库,同时sqlplus提示如下:

ora27102

Out of memory这个提示真是让人费解,内存感觉还是非常充足的样子。

阅读全文 »

问题背景

看过CI框架用法应该会看到,在配置CI框架连接数据库时,默认会开启持久连接,即类似这样的配置$db['test']['pconnect'] = TRUE;,使用MySQL时会调用mysql_pconnect方法实现这一个功能,而oci8扩展恰巧也有类似的方法oci_pconnect:

oci_pconnect

方法的用处文档上说的很清楚:

oci_pconnect() 创建一个到 Oracle 服务器的持久连接并登录。持久连接会被缓冲并在请求之间重复使用,可以降低每个页面加载的消耗。

那么按道理来说这样的功能应该是会提升处理能力的,但是问题在于,持久连接会增加Oracle的进程数,一旦进程数耗尽,那么新的连接请求可能会被拒绝,反而会使得处理能力下降。

今天遇到了这样的一个问题,当双机各自开启1024个php-fpm进程时,使用sqlplus连接数据库被拒绝,同时各种操作都被拒绝执行。

阅读全文 »