大漠孤狼网迹

随想,事件,经验

Entries for February, 2009

IIS,连接数,进程数

国内卖虚拟主机的基本都有一项参数IIS数,而大部分人买虚拟主机的时候也会问主机商,你们的iis数是多少。而且IIS数被作为虚拟主机的一个非常重要的参数。但是奇怪的是,几乎所有的主机商的网站都没有解释IIS数是什么东西。网上流传着一篇很常见的讲解IIS数的文章,几乎和在线人数等同起来(只是框架会多占IIS数),还解释了你的论坛的在线人数为什么达不到虚拟主机的IIS数。正式因为广泛的误解,还有就是很多新手不明白在线人数是怎么回事,甚至很多人就把discuz论坛看到的在线人数和iis等同起来。如果有这样的误解,买空间的时候就会很郁闷了,例如很多空间的iis是50,但是我的论坛可是1000人在线啊,那怎么办啊!可能是出于无奈,主机商的iis越来越大,甚至出来很多不限制iis数的虚拟主机。 要消除误解就要从头说起,结果发现麻烦来了,IIS是什么东西?IIS不就是微软发布的服务器吗,那IIS数是什么,装了多少了IIS服务器?经过查询微软的技术文档,确切的说法应该是IIS并发连接数。但是很多卖虚拟主机的,服务器是apache,怎么也写着IIS数多少,是不是应该写Apache数呢?哈哈,很多人都被搞晕掉了吧,其实站长们就是这样被主机商给搞晕了。。。 这种说法的根源还是来自于windows和iis,iis的并发连接数估计说起来太烦,干脆简称IIS数甚至iis了。关于IIS的并发数,前一段时间看过一些微软的文档,但是因为我不用IIS,也没记住多少,就不继续讨论了,大家到这里只要知道iis数是什么东西就可以了。 web服务器不只是IIS,或者可以这样说,web服务器里IIS算不上主流,国内之所以这么多人卖的服务器都是iis的,我想原因有几个,一个是盗版用习惯了,还有一个更重要的,懂linux和apache的人太少了,所以在早期,国内的虚拟主机市场想找个apache服务器的都难。记得当年,遍地都是ASP的建站程序,到处都是asp空间,找个php的难啊,不过现在已经有很大改观了。 接着说我们的正题,对于apache服务器,再说他的iis数是多少,是不是不伦不类呢?那么应该叫什么呢?我发现,不少主机商现在不写IIS数了,写成并发连接数了,但是因为误解,很多人就把并发连接数和IIS数等同起来,然后和在线人数扯上关系。下面我们分析下apache下这个到底是什么东西? 说起来还要搞清楚两个名词才好继续说,一个是连接数,一个是进程数。准确的定义我也说不好,但是连接数一般指的是tcp连接,这个是linux操作系统的限制,apache没找到对这个的限制,所以我们重点说apache进程数(httpd进程数),其实主机商限制的就是这个,大部分人说的连接数指的也是这个,但是容易让人误解。 首先简单说一下过程,当你访问一个页面的时候,你的浏览器就和服务器建立一个tcp连接,然后apache的一个进程来处理你的请求。访问一个页面可能有多个请求,一般来说页面里的每个文件都对应一个请求,例如一个图片,css文件,js文件。所以访问一个页面会发出多个请求。如果服务器支持持久连接,那么一个连接就可以处理所有请求(在超时时间之内),如果服务器不支持持久连接,那么每一个请求都需要建立一个新的tcp连接。对于前一种情况,apache有一个进程来处理,但是这个进程处理完之后要保留一段时间,以便处理其他请求,直到连接断开;对于后面一种情况,apache完成一个请求之后就终止进程,新的请求建立新的进程。(实际上根据配置,一般有一些闲置的进程,不过我们为了方便的说明问题,不考虑那么多情况) 一般的服务器设置都是支持持久连接的,也就是参数KeepAlive处于启用状态。影响最大进程数的主要配置有: MaxClient (为了不把大家搞晕,我们只考虑非线程型的MPM(也就是prefork),MaxClients表示可以用于伺服客户端请求的最大子进程数量) KeepAliveTimeout Apache在关闭持久连接前等待下一个请求的秒数 第一个参数就是进程数的限制,第二个参数表示你的浏览器和apache建立持久连接以后,等待多久断开连接,一般默认的是5s,也就是说,如果5s钟你的浏览器没有发新的请求,服务器就断开与你的持久连接了。而一个持久连接占用一个进程,至于框架会不会占用额外的进程,没搞明白。 进程数可以用下面的公式计算: 总Apache进程数 = KeepAliveTimeout * 每秒种HTTP请求数 / 平均KeepAlive请求 而HTTP请求数就对应日志文件中的请求数(点击数)。 下面我们来做一个估算,假设一种极端的访问情况:浏览器打开一个页面以后不再继续访问其他页面,一直等到服务器断开连接。也就是说一个持久连接对应一个pv,等待5秒钟。对于大部分的页面,服务器执行时间是可以忽略的,也就是近似于一个pv占用5s时间。假设服务器的进程数限制是50个,那么5s可以有50个pv,一天可以有多少pv呢?计算很容易,结果是86万次,每个小时36000.也就是说,进程数限制50,对于大部分的普通网站应用都足够了。 当然实际情况会很复杂,主要有几方面,可能连续访问页面,也就是一个持久连接产生多个pv,这个会增加可承受的pv量;访问量分布不均匀,某些时间段大;一个请求花费的时间很长,例如在线看电影,下载软件;同时发起多个连接,这个影响多大正在查资料和实际观察。 最后总结一下,iis数或者更准确的说apache进程数和在线人数相关性不大,如果要找一个准确的参数,应该是日志中的点击数。在线人数最不靠谱,如果关心这个,请查看服务器的活跃连接,这个才是真的“在线”的人;独立IP数次之,也不靠谱,因为不知道每人访问多少页面,每个页面多少请求;PV数已经很接近了,但是不确定性还是很大。 别用discuz的在线人数衡量服务器的负载,尤其是在你都不知道站长设了多久的时间的时候,很多站长为了好看,在线时间有设置一个月的,其实那些人都不知道“死”了多久了。即使是设置的15分钟,看了上面的分析,你也清楚不确定性有多大了。 关于本文:虽然做网站很久,但是真真接触apache服务器的时间不长,文中可能有不少错误,也有不少忽略了其他设置,只关注几个最主要的参数。如果您发现哪里有错误,请告知我。这个不是技术文章,只是想让买空间的站长了解一下,别被误导。IIS我不熟悉,关于IIS的并发连接数等我熟悉之后再说,不过有一点是确定的,不会把超时时间设置为15分钟,这个要是遇到ddos就挂定了。 大漠孤狼原创(www.83blog.com),转载请注明。

paypal疑难问题解答

本文总结自 在站长百科 和美国主机侦探回复别人的内容,主要是一些很多人关心的,但是又不是很清楚的关于paypal的问题。 1.贝宝和paypal是什么关系,贝宝可以收美元吗? 严格来说,贝宝就是paypal,贝宝是paypal的中文名。但是目前确实存在两种不一样的paypal,一个是国内(中国)使用的,一个可以说是国际paypal。之所以出现这种情况,主要是因为国内的外汇管制,所以国内paypal只能收发人民币,而不能收发美元。虽然两者不能互通,但这两个是属于同一个公司的,目前帐号信息是共用的,也就是你在国内paypal注册了的帐号,在国际paypal就注册不了了,真真的互通估计要等到外汇管制放宽之后了。 目前,中文客户不论是从paypal.com.cn 还是从 paypal.com 进入网站,都可能被自动转入国内的paypal(估计是依靠操作系统或者ip识别的),这个是paypal的一大败笔,给用户增加了不少麻烦。那么如何注册国际paypal账户呢?按照下面的方法即可: 如果浏览器会自动转向到 www.paypal.com/cn 这个时候如果你想进入国际网站就点右上角的 中国(中文),然后选择 china Wordwide就进入国际网站了 有时候我们为了方便的区分这两个网站,就把国内的叫做贝宝,国际的叫做paypal…,就是为了方便,是错误的。 2.验证的那1.95美元会还给我吗? 按照paypal的政策,当你添加信用卡验证的时候,他会从你的信用卡扣除1.95美元,当你用paypal消费一次之后这个1.95美元就会返还到你的帐户。也就是说这个钱是还给你的。记得国内有个无知的家伙还写了一篇文章,说paypal的大阴谋,要骗中国多少多少钱。。。还发到了一个不错的网站上。看来国内网站的编辑很多白痴啊,弄了这么大的笑话。 为什么要扣钱,因为你用信用卡消费了,账单里面才能显示出验证码。为什么是1.95美元?我也不知道。 其实为了这个验证,paypal是有成本的,你刷卡的时候,银行是要收手续费的。当然你用paypal消费之后,paypal可能也会赚一些钱(如果你发钱给的是高级或企业账户)。但是说paypal骗钱,不知道从何而起。。。 3.不加信用卡可以消费吗? 可以,不过要保证你的paypal上有余额。你可以让别人给你发或者找人交易,不过paypal交易有风险,请大家谨慎。 如果是需要和商家签订付款协议的,不添加信用卡无法付款,例如godaddy。 4.商家可以从我的paypal账户自动扣款吗? 这个要分情况,看你采取的是哪种付款方式。 paypal付款有4中方式,一种是你直接发钱给对方,一种是最常见的,通过商家网站的付款链接,登录paypal,确认付款。这两种方式商家都是无法自动从你的paypal扣款的。还有一种是付款之前,你需要和商家建立一个自动付款协议,然后付款。例如 godaddy enom就是这种方式,这种方式商家是可以自动扣款的,不过你付款之后可以登录paypal取消付款协议。美国的商家信用都很好,不用担心乱扣款的问题。最后一种是捐赠,也就是你定期给paypal商家发钱,商家也不能私自扣款。也可以在自己的账户中取消捐赠协议,而且这个无法在商家取消,只能在paypal中取消,要么即使你不买它的产品了,paypal还会自动发钱过去。hostgator就有这种付款方式,要小心,不用主机之后要记得取消协议。 6.paypal有中文客服吗? 有,这个是上海客服中心的电话: 021-28913888 大漠孤狼(www.83blog.com)原创,转载请注明