<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fresker小站 &#187; 技术杂谈</title>
	<atom:link href="http://www.fresker.com/old2/archives/category/%e6%8a%80%e6%9c%af%e6%9d%82%e8%b0%88/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fresker.com/old2</link>
	<description>天将降大任于斯人也，必先苦其心志，劳其筋骨，饿其体肤，空乏其身....</description>
	<lastBuildDate>Sat, 05 May 2018 04:20:42 +0000</lastBuildDate>
	<language></language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>jQuery IE 6 7 8 出错: 意外地调用了方法或属性访问</title>
		<link>http://www.fresker.com/old2/archives/594</link>
		<comments>http://www.fresker.com/old2/archives/594#comments</comments>
		<pubDate>Thu, 25 Oct 2012 08:47:57 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[教程类]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/594</guid>
		<description><![CDATA[jquery在ie6,7,8下报错 JQUERY IE error: unexpected call to method or property access 意外地调用了方法或属性访问 意外地调用了方法或属性访问 or unexpected call to method or property access $('tbody').html(htmlinfo);&#160;&#160;&#160;&#160;//ie下直接插入html内容到一个节点时报错 解决方法： 将html内容添加到一个不同的元素标签里面，如下面的&#60;tbody&#62; $('table').html('&#60;tbody&#62;' + htmlinfo+ '&#60;/tbody&#62;');&#160;&#160;&#160;&#160;//本人使用此种方式 或者 document.title = htmlinfo;&#160;&#160;&#160;&#160;//这种方式也可以，但是个人还是喜欢上面一种]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/594/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django手把手学习——模版使用</title>
		<link>http://www.fresker.com/old2/archives/518</link>
		<comments>http://www.fresker.com/old2/archives/518#comments</comments>
		<pubDate>Mon, 16 Jul 2012 05:51:39 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[技术杂谈]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/518</guid>
		<description><![CDATA[在开发过程中，存在多种开发流程 添加View方法 -&#62; 添加模板 -&#62; 修改urls.py -&#62; 再加上数据库相关的模型(Model)部分 我更中意于： 修改urls.py -&#62; 添加view方法 -&#62; 添加模版 -&#62;其他部分（第一部分修改urls，对流程有总体认识，其他部分顺序可按实际调整） &#160; 此处使用django内嵌模版功能 修改urls.py 添加 (r&#8217;^fortemplate/$&#8217;,'djangotest1.fortemplate.index&#8217;) &#160; 新建文件fortemplate.py如下 #!/usr/bin/python # -*- coding:UTF-8 -*-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;#添加对中文支持，选择utf-8 &#160; from django.shortcuts import render_to_response &#160; records = [ &#160;&#160;&#160; {'name':'张三','age':18}, &#160;&#160;&#160; {'name':'李四','age':20} &#160;&#160;&#160; ] &#160; def index(request): &#160;&#160;&#160; return render_to_response(&#8216;fortemplate.html&#8217;,{&#8216;records&#8217;:records}) &#160; 在项目中新建templates文件夹 &#160; 为了使用template功能，在setting中，添加temlate_dir的配置 此处为 TEMPLATE_DIRS = [...]]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/518/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django手把手学习——form应用</title>
		<link>http://www.fresker.com/old2/archives/516</link>
		<comments>http://www.fresker.com/old2/archives/516#comments</comments>
		<pubDate>Mon, 16 Jul 2012 05:51:26 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[教程类]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/516</guid>
		<description><![CDATA[继第一个应用之后，深入一点，使用form来获取数据 &#160; 在urls.py文件中刚才添加部分添加一行 &#160;&#160; url(r&#8217;^form/$&#8217;,'djangotest1.form.index&#8217;), &#160; 添加form.py文件 #!/usr/bin/python &#160; from django.http import HttpResponse &#160; temp = &#8221;&#8217;&#60;form method=&#8221;post&#8221; action = &#8220;/form/&#8221;&#62; &#160;&#160; &#60;input type=&#8221;text&#8221; name=&#8221;uname&#8221; value=&#8221;" /&#62;\n &#160;&#160; &#60;input type=&#8221;text&#8221; name=&#8221;passwd&#8221; value=&#8221;" /&#62;\n &#160;&#160; &#60;input type=&#8221;submit&#8221; value=&#8221;submit&#8221; /&#62; &#160;&#160; &#60;/form&#62;&#8221;&#8217; def index(request): &#160;&#160;&#160; if request.POST.has_key(&#8216;uname&#8217;): &#160;&#160;&#160;&#160;&#160;&#160;&#160; uname = request.POST.get(&#8216;uname&#8217;,&#8221;) &#160;&#160;&#160;&#160;&#160;&#160;&#160; passwd = request.POST.get(&#8216;passwd&#8217;,&#8221;) &#160;&#160;&#160;&#160;&#160;&#160;&#160; info [...]]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/516/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django手把手学习——第一个应用</title>
		<link>http://www.fresker.com/old2/archives/515</link>
		<comments>http://www.fresker.com/old2/archives/515#comments</comments>
		<pubDate>Mon, 16 Jul 2012 05:51:14 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[教程类]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/515</guid>
		<description><![CDATA[在djangotest1目录下创建文件first.py &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;#!/usr/bin/python &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; from django.http import HttpResponse &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; def index(request): &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#8221;&#8217;this is test first python&#8221;&#8217;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return HttpResponse(&#8220;this is the first python.&#8221;) &#160; 修改urls.py文件 在末尾添加： urlpatterns += patterns(&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;#此处使用+=的方式，在原有基础上添加urlpatterns,这种方法便于分开自定义的url块 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;#在多个不同类型中，可以更快的定位到自定义的url,个人较中意这种方式 &#160;&#160;&#160; url(r&#8217;^$&#8217;,'djangotest1.first.index&#8217;),&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;#&#160;r'^$'&#160;是为了匹配空串，也就是形如:&#160;http://localhost:8000/ ) &#160; 现在刷新页面，可看到页面显示内容 通过 Wiz 发布]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/515/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django手把手学习——安装篇</title>
		<link>http://www.fresker.com/old2/archives/514</link>
		<comments>http://www.fresker.com/old2/archives/514#comments</comments>
		<pubDate>Mon, 16 Jul 2012 05:51:03 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[教程类]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/514</guid>
		<description><![CDATA[此处总结记录学习django的过程： &#160; 安装： 此处选择ubuntu12.04环境 内置python2.7.3 下载django1.4，解压，进入解压文件夹 安装django: &#160;&#160;&#160; tar zxvf django1.4.tar.gz &#160;&#160;&#160; cd django1.4 &#160;&#160;&#160;&#160;sudo python setup.py install &#160; 创建项目目录 cd /home/username/ mkdir djangoproject cd djangoproject django-admin startproject testproject1 当前目录下新建了testproject1目录 目录结构 &#160; manage.py&#160;&#160;&#160;&#160;#可执行文件 &#160; djangotest1/&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #项目目录 &#160;&#160;&#160;&#160;&#160; __init__.py&#160; #表示这是python包，可通过import导入 &#160;&#160;&#160;&#160;&#160; urls.py&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #处理url映射 &#160;&#160;&#160;&#160;&#160; setting.py&#160;&#160;&#160;&#160; #django配置文件 &#160;&#160;&#160;&#160;&#160; wsgi.py &#160; 启动django内置的web服务器 ./manage.py runserver 0.0.0.0:8080&#160;&#160;&#160;&#160;#ip和port可以省略，使用默认值127.0.0.1:8080,此处设置为0.0.0.0是为了可通过ip地址访问，ubuntu在虚拟机中 &#160; 通过地址访问服务器 虚拟机地址192.168.56.101:8080&#160;&#160;&#160;&#160;#此处的地址会有差别 [...]]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/514/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu下配置Apache的Worker模式</title>
		<link>http://www.fresker.com/old2/archives/508</link>
		<comments>http://www.fresker.com/old2/archives/508#comments</comments>
		<pubDate>Fri, 13 Jul 2012 03:53:35 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[开发技术类]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/508</guid>
		<description><![CDATA[其实Apache本身的并发能力是足够强大的，但是Ubuntu默认安装的是Prefork模式下的Apache。所以导致很多人后面盲目的去安装lighttpd或者nginx一类替代软件。但是这类软件有一定的兼容问题，部分情况下可能工作的并不好。那么， 是不是Apache并发就不行了呢？——答案当然是否定的。 在进行配置之前，我们首先要知道什么是Prefork模式，什么是Worker模式，什么是Event模式，以及什么是MPM。 MPM是Apache2引入的一个概念，就是将结构模块化。把核心任务处理作为一个可插拔的模块，即MPM，使其能针对不同的环境进行优化。在这个情况下，就诞生出了处理模式的概念。处理模式现在分为Prefork、Worker、Event三种。 Prefork MPM基于非线程模型，和Apache 1.x版本中的处理方式很相似。Prefork MPM在所有情况下都很安全，对运行非线程安全（non-thread-safe）模式的软件如PHP，它是唯一的安全选择。对于某些应用程序，包括在 Apache 1.3上非常流行的程序（如简单静态页面、CGI脚本等），Prefork MPM是最好的选择。另一方面，prefork用单独的子进程来处理不同的请求，进程之间是彼此独立的，这也使其成为最稳定的MPM之一。但是由于每一个请求都会产生一个新的进程，导致系统资源（尤其是内存）消耗的很快，一旦并发量较大的时候，大量的Apache进程会占用巨大的内存空间。 而Worker MPM基于线程模式，具有内存消耗低（对繁忙的服务很重要）、扩展性在某些特定应用情况下比Prefork更好等优点。在这个模式下，采用的进程和线程混合的形式处理请求。由于使用线程来处理，所以可以处理相对海量的请求，而系统资源的开销要小于基于进程的Prefork模式。 以上两种稳定的MPM方式在非常繁忙的服务器应用下都有些不足。尽管HTTP的Keepalive方式能减少TCP连接数量和网络负载，但是 Keepalive需要和服务进程或者线程绑定，这就导致一个繁忙的服务器会耗光所有的线程。Event MPM是解决这个问题的一种新模型，它把服务进程从连接中分离出来。在服务器处理速度很快，同时具有非常高的点击率时，可用的线程数量就是关键的资源限 制，此时Event MPM方式是最有效的。一个以Worker MPM方式工作的繁忙服务器能够承受每秒好几万次的访问量（例如在大型新闻服务站点的高峰时），而Event MPM可以用来处理更高负载。值得注意的是，Event MPM不能在安全HTTP（HTTPS）访问下工作。 一目了然，三种MPM模式各有各的优缺点。但是如果我们经常遇到访问量一大，服务器资源就吃紧的情况，那么就是Prefork模式瓶颈了。在其他两类MPM中，通用的做法还是使用Worker模式来解决问题。Event MPM由于不支持安全连接（HTTPS）所以导致应用有一定的局限性。 下面我们就以Ubuntu下将Apache的模式从Prefork设置为Worker为例，来说明一下操作步骤。前面也提到了，由于Worker模式与PHP的执行方式不同，所以如果简单的输入apt-get install apache2-mpm-worker，会导致PHP无法使用。当然了，如果你的网页只有静态页面，不需要使用PHP，那么使用上面这条指令就会搞定一切。这里我们着重讨论下要使用PHP的情况下，应该如何配置Apache的Worker模式。 1. 安装Apache的fcgid模块，使用它来启用PHP。 #apt-get install libapache2-mod-fcgid 2. 设置fcgid模块的配置文件，使其能够调用PHP。 #vim /etc/apache2/mods-available/fcgid.conf 将文件内的原来文本全部删除掉，然后添加下面的文本： &#60;IfModule mod_fcgid.c&#62;AddHandler fcgid-script .php .py .pl .fcgiSocketPath /var/lib/apache2/fcgid/sockIPCConnectTimeout 20&#60;/IfModule&#62; 3. 安装php5-cgi。 #apt-get install php5-cgi 4. 设置Apache的配置文件，使其能够调用fcgid模块来启动PHP。 #vim /etc/apache2/apache2.conf 在文件最后添加下面的内容： [...]]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/508/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache MPM Prefork模式参数调优方法</title>
		<link>http://www.fresker.com/old2/archives/507</link>
		<comments>http://www.fresker.com/old2/archives/507#comments</comments>
		<pubDate>Fri, 13 Jul 2012 03:53:16 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[开发技术类]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/507</guid>
		<description><![CDATA[Apache配置文件中有非常多的参数，绝大多数Apache都是运行于mpm_prefork模式下，而对prefork参数的调试至关重要。prefork模式对每个不同的请求使用不同的进程，因此能够避免非常多的安全问题。它具有强大的自我调节能力，能够比较智能的适应不同压力的访问。 调整性能参数并非纸上谈兵，需要在调整的每一步都对服务器进行负载压力测试，以确保在服务器稳定的基础下实现最高的性能。 参数解释 Apache的MPM配置文件主要有如下几段： 平板视图 打印？ 1 &#60;IfModule mpm_prefork_module&#62; 2 StartServers 10 3 MinSpareServers 5 4 MaxSpareServers 15 5 MaxClients 200 6 MaxRequestsPerChild 5000 7 &#60;/IfModule&#62; 其中MaxClients、MinSpareServers与MaxSpareServers是关键。 MaxClients决定了Apache最多创建多少个子进程用来处理请求。进一步举例解释，如果这个参数设置为200（如图），则当Apache主进程收到大量请求时，会创建最多200个进程。而这200个进程用于处理这些请求。因此，无论有多少个请求，也只会有200个进程并行处理。 MaxSpareServers顾名思义是“最多空闲进程”，注意“空闲”二字。接上一个例子，当这200个进程处理完了所有的请求后，这些进程便都“空闲”了。此时Apache便会杀死一些进程以释放资源。那么，如上图设置，Apache会保留最多15个空闲的进程； MinSpareServers是“最少空闲进程”。当Apache启动时，如果空闲的进程少于5个，则会以一定频率创建新的进程，直到满足这个数值（5）。这样设计的目的是为了让Apache更迅速的应付潜在的访问高峰。 StartServers表示Apache在启动的时候创建的进程数量。如果访问压力很大，那么进程数会逐步增加，直到达到MaxClients设置的数量。 MaxRequestPerChild表示每个进程处理的最大请求数。当任何一个子进程处理的请求数达到MaxRequestPerChild后，便会自杀。如果MaxRequestPerChild设置为0，表示不限（即永远不自杀）。这种机制的作用是防止潜在的内存泄露。如果Apache的某个模块，或者某段php脚本可能导致内存泄露，而处理进程却又永远不退出，则很可能造成服务器内存剧增最终崩溃。当开启这个机制后，无论是否存在内存泄露，都会让进程在处理一定数量的请求后退出，同时释放所有内存。 调优约束条件 MaxClients参数的最佳值在很大程度上取决于内存大小。此参数调优的目标即当Apache处在最多子进程数状态时，服务器不会使用swap。如果此数值的设置过大，则Apache在访问高峰期会创建过多的子进程，导致Linux使用swap来作为内存。而swap的效率非常低，并且会导致磁盘压力增大，形成恶性循环。 如果希望Apache能在访问非高峰期过后能够迅速的释放资源，则MaxSpareServers应该设置得略低，让Apache迅速杀死过多的子进程； 如果希望Apache能够迅速应对突如其来的访问高峰，则应将MinSpareServers设置高一点，让Apache创建较多的空闲（备用）进程。 而MaxRequestPerChild对性能的影响则没有那么明显。如果MaxRequestPerChild设置偏小，则Apache可能会在访问高峰期时，把大量的CPU消耗在创建/杀死进程上，造成不必要的CPU损耗。 Prefork机制 prefork 控制进程在最初建立“StartServers”个子进程后，为了满足MinSpareServers设置的需要创建一个进程，等待一秒钟，继续创建两个，再等待一秒钟，继续创建四个……如此按指数级增加创建的进程数，最多达到每秒32个，直到满足MinSpareServers设置的值为止。 这种模式可以不必在请求到来时再产生新的进程，从而减小了系统开销以增加性能。MaxSpareServers设置了最大的空闲进程数，如果空闲进程数大于这个值，Apache会自动kill掉一些多余进程。这个值不要设得过大，但如果设的值比MinSpareServers小，Apache会自动把其调整为 MinSpareServers+1。 如果站点负载较大，可考虑同时加大MinSpareServers和MaxSpareServers。 MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。 通过 Wiz 发布]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/507/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Prefork和Worker模式的性能比较测试</title>
		<link>http://www.fresker.com/old2/archives/506</link>
		<comments>http://www.fresker.com/old2/archives/506#comments</comments>
		<pubDate>Fri, 13 Jul 2012 03:52:53 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[开发技术类]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[项目环境搭建]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/506</guid>
		<description><![CDATA[选择prefork还是worker可以在编译时使用–with-mpm=MPM参数指定,默认为prefork, prefork prefork采用预派生子进程方式，用单独的子进程来处理 不同的请求，进程之间彼此独立。在make编译和make install安装后，使用httpd -l来确定当前使用的MPM是prefork.c。查看httpd-mpm.conf配置文件，里面包含如下默认的配置段： &#60;IfModule prefork.c&#62;StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 &#60;/IfModule&#62;prefork 控制进程在最初建立“StartServers”个子进程后，为了满足MinSpareServers设置的需要创建一个进程，等待一秒钟，继续创建两个，再等待一秒钟，继续创建四个……如此按指数级增加创建的进程数，最多达到每秒32个，直到满足MinSpareServers设置的值为止。这种模式可以不必在请求到来时再产生新的进程，从而减小了系统开销以增加性能。MaxSpareServers设置了最大的空闲进程数，如果空闲进程数大于这个值，Apache会自动kill掉一些多余进程。这个值不要设得过大，但如果设的值比MinSpareServers小，Apache会自动把其调整为 MinSpareServers+1。如果站点负载较大，可考虑同时加大MinSpareServers和MaxSpareServers。 MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限，即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求，但如果设成非零值也有两点重要的好处：1、可防止意外的内存泄漏。2、在服务器负载下降的时侯会自动减少子进程数。因此，可根据服务器的负载来调整这个值。MaxClients是这些指令中最为重要的一个，设定的是 Apache可以同时处理的请求，是对Apache性能影响最大的参数。其缺省值150是远远不够的，如果请求总数已达到这个值（可通过ps -ef&#124;grep http&#124;wc -l来确认），那么后面的请求就要排队，直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大，可以处理的请求就越多，但Apache默认的限制不能大于256。ServerLimit指令无须重编译Apache就可以加大MaxClients。 &#60;IfModule prefork.c&#62; ServerLimit&#160; 10000StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 10000 MaxRequestsPerChild 0 &#60;/IfModule&#62; &#160; Worker相对于prefork，worker全新的支持多线程和多进程混合模型的MPM。由于使用线程来处理，所以可以处理相对海量的请求，而系统资源的开销要小于基于进程的服务器。但是，worker也使用了多进程，每个进程又生成多个线程，以获得基于进程服务器的稳定性。在configure –with-mpm=worker后，进行make编译、make install安装。在缺省生成的httpd-mpm.conf中有以下默认配置段：&#60;IfModule worker.c&#62; StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild [...]]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/506/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python求素数</title>
		<link>http://www.fresker.com/old2/archives/503</link>
		<comments>http://www.fresker.com/old2/archives/503#comments</comments>
		<pubDate>Wed, 27 Jun 2012 01:29:54 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[开发技术类]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[教程类]]></category>
		<category><![CDATA[其他学习知识]]></category>

		<guid isPermaLink="false">http://www.fresker.com/?p=503</guid>
		<description><![CDATA[python中求素数（质数）的方法： 基本方法： 方法1： [x for x in range(1,a) if not [y for y in range(2,int(x/2)+1) if x%y==0]] 改进方法： 方法2： [x for x in range(1,a) if not [y for y in range(2,round(x**0.5)+1) if x%y==0]] 方法3： [x for x in range(1,a) if not [y for y in range(2,round(math.sqrt(x))+1) if x%y==0]] 方法2最高效，方法3调用math模块，降低了效率，大家有更好的方法，请留言大家讨论]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/503/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Dirve安装问题解决</title>
		<link>http://www.fresker.com/old2/archives/490</link>
		<comments>http://www.fresker.com/old2/archives/490#comments</comments>
		<pubDate>Thu, 26 Apr 2012 09:50:12 +0000</pubDate>
		<dc:creator>Duke</dc:creator>
				<category><![CDATA[乱七八糟]]></category>
		<category><![CDATA[技术杂谈]]></category>
		<category><![CDATA[电脑知识]]></category>
		<category><![CDATA[其他学习知识]]></category>
		<category><![CDATA[其他工具]]></category>

		<guid isPermaLink="false">http://www.fresker.com/archives/490</guid>
		<description><![CDATA[刚申请开通了google drive，5G空间，感觉还不错 不过在使用的时候遇到点小问题 安装提示安装，下载了googledrivesync.exe之后点击安装，老是出现连接错误，download failed 那个纠结啊，后来网上搜刮了一下，找到个解决方法 可能需要修改hosts文件 https://smarthosts.googlecode.com/svn/trunk/hosts 添加上页面中的部分，再重新试下载安装，ok 通过 Wiz 发布]]></description>
		<wfw:commentRss>http://www.fresker.com/old2/archives/490/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->