nginx fastcgi参数配置

一般来说nginx配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。 worker_rlimit_nofile 102400; 这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。 use epoll; 使用epoll的I/O模型,这个不用说了吧。 worker_connections 102400; 每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。 keepalive_timeout 60;

FastCGI(php-cgi)工作原理

一、FastCGI是什么? FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较 高的性能。众所周知,CGI解释 器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。 FastCGI的官方站点在http://www.fastcgi.com FastCGI的工作原理是: 1、Web Server 启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module); 2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。 3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。 4、 FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 在正常的CGI模式中,php-cgi.exe在此便退出了。 在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。 二、为什么要使用FastCGI,而不是多线程CGI解释器? 这可能出于多方面的考虑,例如: 1、你无论如何也不能在windows平台上稳定的使用多线程CGI解释器,无论是IIS ISAPI方式还是APACHE Module方式,它们总是运行一段时间就崩溃了。奇怪么?但是确实存在这样的情况! 当 然,也有很多时候你能够稳定的使用多线程CGI解释器,但是,你有可能发现网页有时候会出现错误,无论如何也找不到原因,而换用FastCGI方式 时这种错误的概率会大大的降低。我也不清楚这是为什么,我想独立地址空间的CGI解释器可能终究比共享地址空间的形式来得稳定一点点。 2、性能! 性能?可能么,难道FastCGI比多线程CGI解释器更快?但有时候确实是这样,只有测试一下你的网站,才能最后下结论。原因嘛,我觉得 很难讲,但有资料说在Zend WinEnabler的时代,Zend原来也是建议在Windows平台下使用FastCGI而不是IIS ISAPI或Apache Module,不过现在Zend已经不做这个产品了。

Oracle创建用户、表空间、导入导出、…命令

//创建临时表空间 create temporary tablespace test_temp tempfile ‘E:oracleproduct10.2.0oradatatestservertest_temp01.dbf’ size 32m autoextend on next 32m maxsize 2048m extent management local; //创建数据表空间 create tablespace test_data logging datafile ‘E:oracleproduct10.2.0oradatatestservertest_data01.dbf’ size 32m autoextend on next 32m maxsize 2048m extent management local; //创建用户并指定表空间 create user testserver_user identified by testserver_user default tablespace test_data temporary tablespace test_temp; //给用户授予权限 grant connect,resource to testserver_user; (db2:指定所有权限) […]

org.hibernate.annotationexception no identifier specified for entity

org.hibernate.annotationexception no identifier specified for entity 因为数据库的表必须要定义主键,此类没有定义主键 复合主键: 表 1-17 @IdClass 属性 属性 必需 说明 value 要指定复合主键类,请将 value 设置为所需的 Class(请参阅 @AttributeOverride)。 示例 1-37 显示了一个非嵌入的复合主键类。在该类中,字段 empName 和 birthDay 的名称和类型必须对应于实体类中属性的名称和类型。示例 1-38 显示了如何使用这个非嵌入的复合主键类(使用 @IdClass 批注)配置 EJB 3.0 实体。由于实体类字段 empName 和 birthDay 在主键中使用,因此还必须使用 @Id 批注对其进行批注。 示例 1-37 非嵌入的复合主键类 view plaincopy to clipboardprint? public class EmployeePK implements Serializable {

基于按annotation的hibernate主键生成策略

自定义主键生成策略,由@GenericGenerator实现。 hibernate在JPA的基础上进行了扩展,可以用一下方式引入hibernate独有的主键生成策略,就是通过@GenericGenerator加入的。 比如说,JPA标准用法 Java代码 @Id @GeneratedValue(GenerationType.AUTO) 就可以用hibernate特有以下用法来实现 Java代码 @GeneratedValue(generator = “paymentableGenerator”) @GenericGenerator(name = “paymentableGenerator”, strategy = “assigned”) @GenericGenerator的定义:

Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用方法

一、http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz 安装很简单 #tar zxvf http_load-12mar2006.tar.gz #cd http_load-12mar2006 #make && make install 命令格式:http_load  -p 并发访问进程数  -s 访问时间  需要访问的URL文件 参数其实可以自由组合,参数之间的选择并没有什么限制。比如你写成http_load -parallel 5 -seconds 300 urls.txt也是可以的。我们把参数给大家简单说明一下。 -parallel 简写-p :含义是并发的用户进程数。 -fetches 简写-f :含义是总计的访问次数 -rate    简写-p :含义是每秒的访问频率 -seconds简写-s :含义是总计的访问时间 准备URL文件:urllist.txt,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好.文件格式

js转码函数

escape()编码,不能编码URI un上面()解码,不能编码URI encodeURIComponent()编码范围比encodeURI大些 decodeURIComponent()解码范围比encodeURI大些 encodeURI()对一个URI编码 decodeURI()对一个URI解码 isFininte()检测表达式的值,如果不是无穷大或NaN则为True isNaN()判断是否NaN   最近做的一个项目中,需要前台用js来请求一个jsp文件,其中传递的参数中可能含有中文,还有特殊字符,所以需要在js中首先