安泰信息

2009年02月17日

笔记本电脑linux下cpu无法全速运行的解决方法

归档在: Linux — JACKEYJ @ 1:47 PM

公司采购一批dell 1310的笔记本,装了一个centos,结果发现T5670的cpu只能在800MHz下运行,性能可想可而知了.查找了很多的资料,有的说启动的时候禁用apmd也没什么反应,在bios里面也没相关的设置.

最后在poweroff的时候发现一个cpuspeed的服务关闭,于是抱着试试看,把这个服务关闭,重启之后发现已经全速运行了.

2008年12月16日

apache静态文件压缩,提高网络流量

归档在: apache, jboss — JACKEYJ @ 4:28 PM

    本文主要介绍如何通过对页面进行压缩从而节省网站的带宽以及提升用户的访问速度。

网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是应用程序本身的响应速度,因此当你为网站性能所苦恼时,你第一个需要着手进行处理的便是尽可能的提升应用程序的执行速度,你可以使用缓存或者是优化代码的执行效率来提升应用程序的速度。

但是,本文并不是介绍如何来提升应用程序的执行效率,前面提到的只不过是为了防止您病急乱投医。在确保您的应用程序的性能已经达到足够好,同时服务器的性能也完全满足的情况下,不妨来试试网页压缩来进一步提升网页的浏览速度,而且非常重要的是,它完全不需要任何的成本,只不过是会让您的服务器CPU 占用率稍微提升一两个百分点而已或者更少。

网页压缩是一项由 WEB 服务器和浏览器之间共同遵守的协议,也就是说 WEB 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。双方的协商过程如下:

   1. 首先浏览器请求某个 URL 地址,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议,下面我们会介绍二者之间的区别);
   2. WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
   3. 浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。

在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。

接下来我们介绍几种常用的环境下如何启用网页压缩功能。

纯 Tomcat 服务器

如果您的 WEB 应用程序是跑在 Tomcat 服务器下的,而且直接使用 Tomcat 所提供的 HTTP 服务,那建议你马上动手,因为实在是太简单了,你只需要在 server.xml 配置文件中给 HTTP Connector 增加一个 compression 的参数值为 on 并重启 Tomcat 服务器就立刻生效,配置如下:

    <Connector port=”8080″ protocol=”HTTP/1.1″
               maxThreads=”150″ connectionTimeout=”20000″
               redirectPort=”8443″ compression=”on”/>

Tomcat 采用的是 HTTP/1.1 的 GZIP 压缩协议,它会根据浏览器送过来的请求中的 accept-encoding 值是否包含 gzip 来判断浏览器是否支持 gzip 压缩协议,如果浏览器支持就启用 gzip 压缩,否则就不进行任何压缩处理。Tomcat 中还有另外一个参数 compressableMimeType,这个参数可以用来指定压缩哪种类型的内容,例如可以指定该配置值为:text/html,text /plain ,则只压缩 contentType 为 text/html 和 text/plain 的页面,不过您最好也将 css 和 javascript 文件也算在压缩的文件类型中,因为这两者的压缩效果也十分的明显。

    回页首

Apache 服务器

在 apache 1.3 版本,大家常用 mod_gzip 对输出内容进行压缩,现在主流的浏览器都支持 gzip 解压缩。在 apache2 下,这个模块换名为 mod_deflate,对应的模块文件名是 mod_deflate.so。mod_gzip 本文不做介绍,下面描述一下在 Apache 2 下如何启用并配置 mod_deflate 模块。默认安装的 Apache 不管是 Windows 还是 Linux/Unix,都是不启用该模块的, Linux/Unix 下甚至不带该模块,你需要手工编译这个模块。

下面我们分别介绍在 Windows 和 Linux 操作系统下如何启用并配置 mod_deflate 模块。

在 Windows 下采用安装程序安装的 Apache 服务器已经带有 deflate 所需要的模块 mod_deflate.so 和 mod_headers.so,我们只需要在 httpd.conf 配置文件中启用并进行相关的配置即可,配置如下:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won’t work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don’t compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>

而如果是 Linux/Unix 操作系统,如果你没有在编译安装的过程中将所需要的两个模块 mod_deflate 和 mod_headers 编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块,请在执行 configure 程序时增加两个参数分别是:

# ./configure –enable-deflate –enable-headers

这样在编译完 Apache 后就可以直接在 httpd.conf 中启用并配置 deflate 模块了,配置的方法跟 Windows 平台下是相同的。

如果说您的 Apache 已经在运行了,不想再重新编译一次,那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c。这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。

# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c
# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c

其中 {apache-bin} 为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。

很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示是:

Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate

解决的方法如下:

编辑 /usr/local/apache2/bin/apr-config 文件修改其中的 LDFLAGS 值为 “-lz”,然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。

为了省却不必要的麻烦,请尽量在编译安装时直接加上 –enable-deflate –enable-headers 参数。

我的实施内容:

#run cmd add mod to apache
/infowarelab/apache2/bin/apxs -i -a -c /infowarelab/src/httpd-2.2.3/modules/filters/mod_deflate.c
/infowarelab/apache2/bin/apxs -i -a -c /infowarelab/src/httpd-2.2.3/modules/metadata/mod_headers.c

#add conf in httpd.conf

<IfModule mod_deflate.c>
 DeflateCompressionLevel 7
 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/x-httpd-php
 AddOutputFilter DEFLATE css js
</IfModule>

参考文档:
http://www.ibm.com/developerworks/cn/web/wa-lo-webcompress/
http://www.hbcms.org.cn/cms/9d/1322.html

2008年12月09日

好用的工具软件:世界时钟

归档在: IT新闻 — JACKEYJ @ 10:53 AM

TimeLeft是一款世界时钟软件,不仅提高世界时钟显示,还提高便签功能,想计数器,闹钟也不少。

TimeLeft下载地址
http://www.freedownloadmanager.org/downloads/world_clock_software/

2008年12月08日

杭州机动车上牌流程

归档在: 胡说八道 — JACKEYJ @ 9:56 PM

杭州上牌提示

1上牌必须在工作日,但检测是可以在双休日的,所以有需要的TX可以在双休日去做检测。

2拓发动机号与车架号需要两套,一套检测时用,一套上牌时用。拓这个比较麻烦的,不同车的情况还不一样,最好是让4S店的人帮你拓好,否则找黄牛拓要被敲诈几十块钱的,其实自己准备好纸条及铅笔,自己也可以弄,问一下4S店人位置在哪里就行了。

3购置税是在上牌时交的,那个窗口一般比较空,可以在检测通过后就去交了。

4身份证、车辆合格证、发票、交强险证明等都是要复印的,可以事先复印好,当然也可以在上牌大厅办。自己复印要注意,第二代身份证是要复印正反两面的。

5选完号之后牌照很快就能出来的,注意一下别人是从哪个窗口拿的,放出来了后就可以拿走的,拿到外面找一下有人负责安装的,这个费用是算在服务费里面的。

6装上牌照后,去找拍照的人来给你的车拍照,人可能就在停车场,也可能要去窗口催一下。拍照是必需在现场拍的,因为照片上要有牌照号码才能做行驶证。拿到行驶证及年检标志等就完成了。

7提醒一下,最好自己带支水笔,有什么不明白的可以问保安。我自己一个人弄的,不想让4S赚这个钱。在友通上的牌,没人指导的情况上牌花了半天时间搞定。检测是前一天做的

新车上牌完全攻略(杭州网友亲历版)

我要花好几个晚上才能完成《新车上牌完全攻略》,想想先贴上来,让大家一起参与:

1、当你把新车开回家后,你还面临着买保险、交各种税费、上牌照等繁琐事情。

     当然你可以交给车商代为办理。如果你愿意尝试自己花点时间办理,或许半天也够了,并完全有可能为你省不少票子。何况,做牌照,要把新车开去。你会把自己的新车交给一个陌生人来开?更何况,你不亲临现场选号码?还有,几个上牌点,备选号码可能完全不一样,尤其中间的英文字母,有些人可能会偏爱其中的一个。我上牌时,车城里的号码是2S,车管所里的号码是9Q。想一想各位会选哪个?

我亲身经历了全过程。找一个同伴,帮你排排队,半天时间能办下来。最近车市不热,上牌也不拥挤,一个人半天也能办好。关键是了解程序,做好准备工作。

2、购车前,找几家保险公司比较,并确定一家。这样一来,新车从车商那开出,就可直奔保险公司(预先约好,中午或晚上就可能把保险做好),或许半小时就能把保险搞定,当天晚上12点一过就生效,开起车来就放心了。

3、在付车款时,一并把接下来用的钱提出现金,省了跑好几趟银行。

4、带上几样小东西,帮助会很大:

A:白纸、铅笔(拓车架号码用,现在只要拓车架号码,让车商告诉你,或帮你拓好)。车架号拓二份。

B:钢笔、胶水

C:袋子一个(透明塑料档案袋),把一大叠资料装起来。

D:如果需要牌照框最好自己买好带去,里面贵而且质量差

E:车主的身份证及复印件(A4),代办人的身份证及复印件(A4)。

6、现在可以去缴纳购置税

需要:购车发票原件和复印件一份,本人身份证。车辆合格证原件和复印件一份。

新的汽车城6楼(中午休息1:30上班夏季)

7、上牌去

我先去旧汽车城。出汽车城,东去几百米。但那儿不好:1旧房子2停车难3黄牛多

去得理由:1近2看看牌照号

我最后选择了车管所

第二部分 上牌照

一进车管所大门,向前20米右边就是登记大厅。再向前左边钢棚是验车的地方,再向前是装牌照的,右边是大的停车场。

1、 填表:一进办证大厅门口,有咨询台,问台后的工作人员拿表格。不要拿错了,你是新车!离门口10来米处,有供填表的桌子,上有样张,照着填。

2、 拓号:白纸、铅笔拓车架号码。现在只要拓车架号码二份。(让车商告诉你在哪里,或帮你拓好)。

3、 验车:开车前往检验,在大厅外右前方,钢棚下(国产小车一般不用上流水线检测,只要检查一下钢印是否相符、颜色是否和资料对得上就行了,主要是防盗);

4、 验车程序及提示:

A钢棚边是一排房子,从左到右开了几个窗口,依次为照相、复印、验车1、验车2(具体名称忘了,请更正);

B将车辆合格证原件、技术参数表原件递进验车1窗口,等一会,退给你这些材料及一张打印单。用胶水将拓好的车架号码一份(裁成一纸条,略大于拓印的号码便可)粘在打印单的(车架号码:)后。

C将这些材料及粘上车架号码打拓纸的打印单递进验车2窗口。不要跑开(或把你的车开过来),验车的人会拿了几部车的材料从窗口边的门里出来,依次验车(次序可能会打乱,试试让他先验你的车)。最主要是在叫到你的车时,你能主动领他到你车前。赶紧打开车门,车前盖(要核对车架号码)。验好车后,回到验车2窗口的门边,等着拿回你的材料,打印单上多了几颗图章,验车合格了。把车开出验车处(别人也要验车吗,不能占着地方),停好。

5、注册登记(回大厅内,7或8号窗口)

事先在一张A4白纸上用胶水粘上三样东西(车架号码拓纸纸条、购置税完税证原件上可撕下的半页、另一样请各位指点一下)。

A将验车处拿回的材料、车主的身份证及复印件(A4),代办人的身份证及复印件(A4)、粘上车架号码拓纸纸条等三样东西的白纸,一起递进7或8号窗口。

B窗口内将根据这些材料,进行注册登记。等一下,退回的身份证原件和一张《建档联系单》,保存好;另一张打印纸是选号的凭证。

6、选号:

A将作为选号凭证的打印纸递进10号窗口;

B选号过程激动人心。

7、交钱

凭10号窗口的牌照号码单,到12号窗口开票,11号窗口缴费(120元)。如排队人多,可到右边左拐,最后二个窗口缴费(但不一样的是次后窗口开票,最后窗口收钱)。晕吧!

8、 到二楼领牌照,开车去装牌照处(在哪里?前面第二部分开头讲到)。缴15元,装牌照(如果需要牌照框最好自己买好带去,听说里面贵而且质量差)。

9、 开车去拍照处(在哪里?前面第二部分6A讲到)。拍照时,人下车。车可以开到停车场了。回拍照处窗口缴20元,等一会拿二张新车的照片。

10、 回大厅,先将一张新车照片放入一个专门投照片的窗口。该窗口的号码在12号窗口之后,是一个透明玻璃投票箱,有明显标记(投照片)。

11、 这时候,你有一段时间要等(10-20分钟),可以从容地去缴“四自费”和车船使用费了。在1号窗口这边的尽头,上二楼通道的左边。二个窗口在一起。

12、 缴完“四自费”和车船使用费,回到投新车照片,再向前,不拐弯的最后一个窗口(几号,忘了)。窗口对面有许多人在等。问一下工作人员,你的车的行驶证好了吗?如还没,等等。

13、 等叫到你的新车牌照号码,凭缴完“四自费”和车船使用费的发票,领取《机动车行驶证》,《机动车登记证明》及年检合格证。年检合格证粘在车前挡玻璃内侧右上角。

14、 好了,你可以把车开回家了。我大概2:20到车管所,4:40开车回家。原本想再回一次车管所,把几个窗口号码搞清,原谅这几天没时间了,请知道的贴上来。

15、 还有,别忘了缴养路费和车子建档。全文完

爱车投保 四大招数教你更省钱

归档在: 胡说八道 — JACKEYJ @ 4:37 PM

  续保一辆颐达的车险,在该车上年无责任事故的前提下,全险费用为5680元,如果通过4S店或者保险公司代理人购买最多只能享受全险七折优惠,即需 3976元左右。但如果直接拨打电话车险服务电话向保险公司投保,那么只需要3124元。算一算,比七折的价格还省了852元。

    以上这种购买车险的“省钱”窍门,作为车主的你是否知道呢?无论是新车主还是老车主,每年都要为爱车投保车险,然而这笔费用如何才能比较划算,同时避免各种投保陷阱呢?

    焦点:车险“贵价”的猫腻在哪?

    目前国内财产险公司大约70%的业务都是车险,而车险中的交强险业务为公益性险种,商业险则为保险公司的主要盈利险种。中国平安保险公司集团渠道发展事业部总经理卢跃向记者表示:车险70%的业务一直依靠中介代理商销售,每笔业务都需要支付一笔中介费用(即佣金)。算下来,保险公司车险业务有大约30%的利润出让给中介渠道,由于一部分费用被中介“吃掉”,因此车主也无法能享受到更优惠的价格。

    而且通过代理人购买车险也风险多多,尤其是一些车险代理中介公司以超低价诱惑消费者投保,实际上低价车险猫腻多保障少,在车子出了问题之后,有可能被送到不知名的小维修厂修理。因此,选择保险公司投保车险时,最重要还是要看其配套服务。

    省钱方案一:电话车险5.5折优惠投保

    电话车险是最近一年才兴起来的车险新业务。无论是续保车险还是新车投保,通过保险公司的电话车险直接投保的话,只需要用5.5折左右的价格就能投保成功。电话车险在2007年率先由中国平安保险公司推出,免去了中间代理人,车主只需要拨打平安保险的热线电话就有专人提供服务,提供不同类型的车险险种搭配。

    不过,电话车险后续的理赔服务的质量和速度成为很多车主顾虑的原因。记者了解到,电话车险同时配套“理赔一条龙的直赔服务”,这也将成为一种趋势。就中国平安保险公司而言,目前该公司的服务网络已覆盖全国大多数重点城市,还提供全国通赔、道路救援等增值服务,还增加了“三分钟快速报价”、“量身定做投保方案”、“24小时送单上门”的服务。

    省钱方案二:不同品牌车险有差异

    “同样一辆20多万元的车,别克、福特等欧美品牌保费比本田等日系品牌要低。”卢跃说,即使是同等价位的车子,不同品牌的保费也不相同。记者发现,如PASSAT、蒙迪欧、雅阁等几款中高级车的保费报价,别克车系的车损险费用最低,雅阁等日系车型较高;同样的,全车盗抢险费用(率)雅阁最高,君威、PASSAT、蒙迪欧等基本属于同一相对风险水平,费率系数为1。雅阁由于出险率相对偏高,风险水平相差较大,费率系数为1.5,所以保费也会较高。值得一提的是,部分车型的车险还有限制性的条例,如果车主不接受,保费有可能要上浮 8%~10% 。

    省钱方案三:理赔记录越清白越划算

    据数字显示,超过90%的新车第一年的车险会在4S店购买。当第二年续保时,车主就已学会“货比三家”。续保与首年投保不同,第一年由于保险公司争相拉客,因此优惠幅度更大。但是续保时的优惠幅度则更多地看你车子的理赔记录是否良好。一般来说,车主如果在前一年的投保期限内记录良好,续保时都会得到保险公司很多的优惠。

    记者从各大保险公司了解到,如果头一年车辆没有出过险,那么在第二年续保时可以获得10%的保费优惠;如果头两年内都无事故,第三年保费优惠将达到15%~20%,以此类推,车子的理赔记录表现越好,保险公司给予的保费优惠越高,最高优惠幅度能达到50%。

    省钱方案四:多种渠道投保 团购省车险

    据介绍,现在车主除了在4S店等购买保险外,也可以通过保险公司提供的多种渠道投保。包括前文提到的电话车险,还有网上投保等。有的保险公司会在网上定期推出个人车险优惠业务,如年末有公司推出的网上购车险,商业险保费可以多省15%。

    值得一提的是,在新车购买车险的时候,团购绝对是一个不错的选择。参与团购车险的方式首先可以通过各种车友俱乐部召集参与,有时4S店的俱乐部也会提供此项服务。通过团购购买车险,一般都可以获得10%~25%的优惠幅度,如一辆25 万元左右的别克车系车型,就能省下1500元左右的保费。

2008年11月18日

Optimal mod_jk configuration

归档在: Linux, apache, jboss — JACKEYJ @ 9:03 AM

Optimal mod_jk configuration

 

There are many potential problems associated with the default configuration of mod_jk.  Let’s say it is perfectly adequate for a very low traffic website, but when pushing any moderate to high load to mod_jk, there will be connection problems.  This is not due to any bug in mod_jk whatsoever, however, it is because the default configuration makes no assumption about your existing hardware or potential load, so, therefore, it is not tuned accordingly.

 

Note that the configuration recommendations here are optimal as a base configuration to avoid many of the common problems users experience with mod_jk. There exist many other useful optimizations, but these depend on the environment and web application in use. See http://tomcat.apache.org/connectors-doc/reference/workers.html for details on all available mod_jk properties.

 

Let’s take a look at a typical default configuration for Apache/Tomcat/mod_jk:
workers.properties

worker.list=loadbalancer,status

worker.node1.port=8009
worker.node1.host=node1.mydomain.com
worker.node1.type=ajp13
worker.node1.lbfactor=1

worker.node2.port=8009
worker.node2.host= node2.mydomain.com
worker.node2.type=ajp13
worker.node2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2

worker.status.type=status

 
JBoss Web’s (Tomcat) server.xml AJP snippet:

<Connector port=”8009″ address=”${jboss.bind.address}” protocol=”AJP/1.3″
         emptySessionPath=”true” enableLookups=”false” redirectPort=”8443″ ></Connector>

 
Apache’s httpd.conf:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

 

 

The above configuration, under load, may cause mod_jk to be very slow and unresponsive, cause http errors, and cause half-closed connections.   These problems can arise because there are no connection timeouts specified to take care of orphaned connections, no error handling properties defined in workers.properties, and no connection limits set in Apache and Tomcat.

 

 

First off, lets take care of Tomcat:

 
Configuring server.xml:

 

The main concern with server.xml is setting the connectionTimeout which

sets the SO_TIMEOUT of the underlying socket.  So when a connection in

Tomcat hasn’t had a request in the amount of time specified by

connectionTimeout, then the connection dies off.  This is necessary because if the connection hasn’t been used for a certain period of

time then there is the chance that it is half-close on the mod_jk end.

If the connection isn’t closed there will be an inflation of threads

which can over time hit the maxThreads count in Tomcat then Tomcat will

not be able to accept any new connections.  A connectionTimeout of 600000 (10 minutes) is a good number to start out with.  There may be a situation where the connections are not being recycled fast enough, in this instance the connectionTimeout could be lowered to 60000 or 1 minute.

 

When setting connectionTimeout in Tomcat, mod_jk should also have

connect_timeout/prepost_timeout set, which allows detection that the

Tomcat connection has been closed and preventing a retry request.

 

The recommended value of maxThreads is 200 per CPU, so here we assume the server is a single core machine.  If it has been quad core, we could push that value to 800, and more depending on RAM and other machine specs.

 

<Connector port=”8009″
           address=”${jboss.bind.address}”
           emptySessionPath=”true”
           enableLookups=”false”
           redirectPort=”8443″
           protocol=”AJP/1.3″
           maxThreads=”200″
           connectionTimeout=”600000″></Connector>

 

 

 

 
Configuring workers.properties:

 

See comments inline.

 

worker.list=loadbalancer,status

worker.template.port=8009
worker.template.type=ajp13
worker.template.lbfactor=1
worker.template.ping_timeout=1000
#ping_mode was introduced in 1.2.27, if not using 1.2.27 please specify connect_timeout=10000 and prepost_timeout=10000 as an alternative

worker.template.ping_mode=A
worker.template.socket_timeout=10
#It is not necessary to specify connection_pool_timeout if you are running the worker mpm
worker.connection_pool_timeout=600

#Referencing the template worker properties makes the workers.properties shorter and more concise
worker.node1.reference=worker.template
worker.node1.host=192.168.1.2

worker.node2.reference=worker.template
worker.node2.host=192.168.1.3

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2

worker.status.type=status

 

The key points in the above workers.properties is we’ve added limits for the connections mod_jk makes.  With the base configuration, socket timeouts default to infinite. The other important properties are ping_mode and ping_timeout which handle probing a connection for errors and connection_pool_timeout which must be set to equal server.xml’s connectionTimeout when using the prefork mpm.  When these two values are the same, after a connection has been inactive for x amount of time, the connection in mod_jk and Tomcat will be closed at the same time, preventing a half-closed connection.

 

 

 
Configuring Apache

 

Make note that maxThreads for the AJP connection should coincide with

the MaxClients set in Apache’s httpd.conf.  MaxClients needs to be set

in the correct module in Apache.

 

 

This can be determined by running httpd -V:

 

# httpd -V

Server version: Apache/2.2.3
Server built:   Sep 11 2006 09:43:05
Server’s Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.8
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=”/etc/httpd”
-D SUEXEC_BIN=”/usr/sbin/suexec”
-D DEFAULT_PIDLOG=”logs/httpd.pid”
-D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
-D DEFAULT_LOCKFILE=”logs/accept.lock”
-D DEFAULT_ERRORLOG=”logs/error_log”
-D AP_TYPES_CONFIG_FILE=”conf/mime.types”
-D SERVER_CONFIG_FILE=”conf/httpd.conf”

 

Which tells me the Server MPM is Prefork.  This is not always 100% accurate so you should also view the output of /etc/sysconfig/httpd to see if the following line is there: HTTPD=/usr/sbin/httpd.worker.  If it is commented out you are running prefork, otherwise if uncommented worker.

 

httpd.conf:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
MaxClients       200
MaxRequestsPerChild  0
</IfModule>

 

Or if Apache is using worker, it is
<IfModule worker.c>
StartServers         2
MaxClients         200
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

 

MaxRequestsPerChild is 0, this is the recommended value when using

mod_jk as mod_jk keeps open persistent connections.  The key values in

the above configuration are MaxClients and MaxRequestsPerChild, the rest

of the values are left as default.  Note that MaxRequestsPerChild is

recommended to be 0 however the value may need to be greater than 0

depending on if Apache is used for other modules also, especially in the

case of resource leakage.

 

 
Advanced worker-mpm Configuration

 

To get the most out of your mod_jk setup you should be using Apache’s worker mpm which provides a definite performance improvement over the prefork mpm.  The following section will detail how to configure Apache/mod_jk/Tomcat with the worker mpm and the math behind the configuration.

 

Let’s start out with the worker mpm configuration

<IfModule mpm_worker_module>

ThreadLimit 100
StartServers 5
MaxClients 1000
MinSpareThreads 100
MaxSpareThreads 1000
ThreadsPerChild 100
MaxRequestsPerChild 0
</IfModule>

 

The optimal configuration completely depends on the hardware being used and the load requirements.  But a general rule of thumb, keep processes low and thread count high.  To determine the number of processes Apache will use simply divide MaxClients by ThreadPerChild.  So in this case MaxClients (1000) / ThreadsPerChild (100) = Processes (10), so Apache will allocate a maximum of 100 threads per each 10 child processes resulting in a total of 1000 possible clients.

 

Now to translate this to mod_jk, mod_jk maintains a connection pool for each worker defined in workers.properties.  By default with Apache mod_jk sets connection_pool_size to ThreadsPerChild, so in the above case that would translate to 100, giving 1000 possible connections to JBoss.  This may or may not be desired.

 

Let’s take a common example, there will be 3 JBoss servers that combined needed to be able to handle 900 concurrent connections

 

worker.list=loadbalancer,status
 

worker.template.type=ajp13
worker.template.port=8009
worker.template.ping_mode=A
worker.template.connection_pool_size=30
worker.template.socket_timeout=10
worker.template.retries=20
 

worker.node1.reference=worker.template
worker.node1.host=192.168.0.101

worker.node2.reference=worker.template
worker.node2.host=192.168.0.102

worker.node3.reference=worker.template
worker.node3.host=192.168.0.103
 

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2, node3
worker.sticky_session=True

worker.status.type=status

 

The above configuration tells mod_jk to multiplex 30 connections to the available Apache processes, which is 10 processes.  So that means 30 connections multiplexed over 10 processes gives 300 possible connections to each backend worker.  Furthermore, the total connections able to be used in this configuration from Apache is 900 which means  100 connections will be left over for static content or whatnot.

 

 

Next configure maxThreads in each ajp connector to match the above.

 

Node 1 ajp connector:

<Connector port=”8009″
           address=”${jboss.bind.address}”
           emptySessionPath=”true”
           enableLookups=”false”
           redirectPort=”8443″
           protocol=”AJP/1.3″
           maxThreads=”300″
           connectionTimeout=”600000″></Connector>

 

Node 2 ajp connector:

<Connector port=”8009″
           address=”${jboss.bind.address}”
           emptySessionPath=”true”
           enableLookups=”false”
           redirectPort=”8443″
           protocol=”AJP/1.3″
           maxThreads=”300″
           connectionTimeout=”600000″></Connector>

 

Node 3 ajp connector:

<Connector port=”8009″
           address=”${jboss.bind.address}”
           emptySessionPath=”true”
           enableLookups=”false”
           redirectPort=”8443″
           protocol=”AJP/1.3″
           maxThreads=”300″
           connectionTimeout=”600000″></Connector>

 

Remember when using connectionTimeout which is always recommended, prepost_timeout and connect_timeout also need to be set, which is done.  I’m not showing sticky session configuration, but that covered in the main mod_jk article in using mod_jk with JBoss.

 reference from :http://www.jboss.org/community/docs/DOC-11543

UsingMod_jk1.2WithAFirewall

归档在: Linux, apache, jboss — JACKEYJ @ 8:38 AM

Setting up mod_jk with a firewall:

 
Configuring workers.properties:

# Define list of workers that will be used
# for mapping requests
# The configuration directives are valid
# for the mod_jk version 1.2.18 and later
#
worker.list=loadbalancer,status

# Define Node1
# modify the host as your host IP or DNS name.
worker.node1.port=8009
#Using an IP prevents a DNS lookup
worker.node1.host=192.168.1.2
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.connect_timeout=10000
worker.node1.prepost_timeout=10000
worker.node1.socket_keepalive=True

# Define Node2
# modify the host as your host IP or DNS name.
worker.node2.port=8009
worker.node2.host=192.168.1.3
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.connect_timeout=10000
worker.node2.prepost_timeout=10000
worker.node2.socket_keepalive=True

# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2

# Status worker for managing load balancer
worker.status.type=status

 

 

socket_keepalive=true is the most important setting. connect_timeout and

prepost_timeout are to “work-around” firewalls that

ignore keepalives or close the connection for unknown reasons.

 

 

 
Configuring server.xml:

The main concern with server.xml is setting the connectionTimeout which

sets the SO_TIMEOUT of the underlying socket.  So when a connection in

Tomcat hasn’t had a request in the amount of time specified by

connectionTimeout, then the connection dies off.  Why is this a good

thing?…because if the connection hasn’t been used for a certain period of

time then there is the chance that it is half-close on the mod_jk end.

If the connection isn’t closed there will be an inflation of threads

which can over time hit the maxThreads count in Tomcat then Tomcat will

not be able to accept any new connections.

 

When setting connectionTimeout in Tomcat, mod_jk should also have

connect_timeout/prepost_timeout set, which allows detection that the

Tomcat connection has been closed and preventing a retry request.

 

 

<Connector port=”8009″
           address=”${jboss.bind.address}”
           emptySessionPath=”true”
           enableLookups=”false”
           redirectPort=”8443″
           protocol=”AJP/1.3″
           maxThreads=”200″
           connectionTimeout=”60000″></Connector>

 
Configuring Apache

 

Make note that maxThreads for the AJP connection should coincide with

the MaxClients set in Apache’s httpd.conf.  MaxClients needs to be set

in the correct module in Apache. 

 

 

This can be determined by running httpd -V:

 

# httpd -V

Server version: Apache/2.2.3
Server built:   Sep 11 2006 09:43:05
Server’s Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.8
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=”/etc/httpd”
-D SUEXEC_BIN=”/usr/sbin/suexec”
-D DEFAULT_PIDLOG=”logs/httpd.pid”
-D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
-D DEFAULT_LOCKFILE=”logs/accept.lock”
-D DEFAULT_ERRORLOG=”logs/error_log”
-D AP_TYPES_CONFIG_FILE=”conf/mime.types”
-D SERVER_CONFIG_FILE=”conf/httpd.conf”

 

Which tells me the Server MPM is Prefork

 

httpd.conf:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
MaxClients       200
MaxRequestsPerChild  0
</IfModule>

 

Or if Apache is using worker, it is
<IfModule worker.c>
StartServers         2
MaxClients         200
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

 

MaxRequestsPerChild is 0, this is the recommended value when using

mod_jk as mod_jk keeps open persistent connections.  The key values in

the above configuration are MaxClients and MaxRequestsPerChild, the rest

of the values are left as default.  Note that MaxRequestsPerChild is

recommended to be 0 however the value may need to be greater than 0

depending on if Apache is used for other modules also, especially in the

case of resource leakage.

2008年11月11日

redflag linux java中文乱码解决

归档在: 未分类, Linux, java — JACKEYJ @ 8:40 AM

最近运行一个jnlp程序,但中文显示成了方块,gg里面搜罗一下:

解决乱码问题

在redflag desktop6 sp1中可能打开java控制面板乱码,解决办法如下: 拷贝/usr/share/fonts/zh_CN/TrueType(其它版本可参考 /usr/share/fonts/chinese/TrueType)中的ttf文件到 “/zjant.com/jre/lib/fonts/fallback(如 /usr/java/jre1.6.0_06/lib/fonts/fallback)”夹下,如果在“java安装目录/jre/lib/fonts” 下没有 “fallback”这个目录,可以手工创建一个,即可解决。

2008年11月07日

一份婚前协议书

归档在: 胡说八道 — JACKEYJ @ 9:03 AM

 

 

 本协议书旨在为那些深切领会婚姻含义,本着平等、和平、互助等一系列公平原则的即将成为夫妻的人们所设置。

 任 何误解或者认为婚前协议是对婚姻生活的侵害的观点都会被本协议书一一纠正过来,应当认为本协议书是对婚姻家庭生活的一种切实可行的保障,而不是对婚姻生活 的肢解。我们应当充分支持下列观念:个人的利益高于一切;其次就是由这两个个人所构成的(请注意:这是一种亚结构)家庭的共同利益。任何认为以家庭利益高 于一切的观点,可以统治好一个家庭,那么有这种观念的人必定会犯下无法纠正的错误。

 

 

第一章       夫、妻与家庭

 

第一条:夫、妻是婚姻生活的主体,在家庭中,个人的利益高于一切。

 

第二条:夫、 妻任何一方都拥有独立的人身权、政治权,拥有通信、娱乐、交际等一切宪法赋予的权利,任何一方都不是另一方的附属品,任何一方亦不得成为他方的统治者。 夫、妻双方本着平等互利、互不干涉个人事务、互不侵犯、互相尊重对方的主权和人身安全、和平共处、共同繁荣的原则来维系属于夫妻共有的家庭生活。

 

第三条:家 庭是夫、妻双方将互相合作、共谋发展的一个小型的集合体。这个集合体不是为了用来约束夫、妻双方或某一方的自由或权利而设置。这个集合体是为了谋求由合作 可能带来的更多、更大的利益而设置。如果集合体内的分子因进入集合体而并未使自己的生活或利益有所发展,反而有所损害或倒退的话,任何一分子均可以此理由 退出集合体,不论原因是如何产生的。

 

第四条:家庭的稳定,是由夫、妻双方予以维持的,这一种合作关系的平等性是神圣不可侵犯的。如果夫、妻关系不平等,家庭的稳定随即丧失,不复存在。

 

第五条:夫、妻双方对家庭的唯一的责任就是彼此忠诚信任,决不猜忌。任何个人都必须严肃地记住:猜忌对方是婚姻生活的最大的敌人。如果你在某些方面主观地不相信对方,那么签定本协议书即没有必要。

 

第六条:不得因身体差异或经济实力的差异或智力的差异而对另一方有所歧视,夫、妻任何一方不得利用上列条件(比对方优越)做为要挟对方的手段。但相对条件较差的一方亦不得要求对方降低个人优越条件或做变相补偿。

 

第七条:夫、妻在共同生活中应当互相尊重对方的文化传统和习惯,相互影响不得以强迫的方式进行。而一切与文化相关的事物,如宗教、党派、饮食、衣着、学历和爱好均应获得对方的理解,但决不可以强迫对方接受。

 

第八条:夫、妻在共同生活中互助成为一种经常的事情,但本协议书提醒二位:接受对方的帮助决不能把这认为是一种理所当然的事情,而应当视为是自己所欠的一种债务,所有积极的补偿都是对对方帮助的肯定。这种互助才会更有意义和更富于创造性。

 

第九条:夫、妻在共同生活中必须不断发展自我,提高个人能力。这是保障婚姻生活的一种积极的促进作用,任何不思进取的思想,对家庭生活而言是有危害的。但必须记住:强迫对方按照一定的方法进行变革或进步也许危害更加严重。

 

第二章       夫、妻个人财产与家庭共有财产

 

第十条:从严格的意义上讲,一个新建立和家庭是没有财产的,有的只是夫、妻的个人财产,也可以称为家庭原始财产。

 

第十一条:在家庭生活中,夫、妻不应该因为使用家庭财产而发生争执。避免的方法是确定该财产是属于哪一方投资的家庭原始财产,投资方有优先使用权。在双方都想使用时,无投资一方须无条件放弃使用的要求,在拥有资产方不使用时,对方可以使用,直到所有者要求使用时为止。

 

第十二条:家庭原始财产归夫、妻个人所有,谁投资谁拥有的原则贯彻婚姻生活的始终。

 

第十三条:家庭共有财产指家庭生活开始后,由夫妻双方共同购置的财产。这些财产按照夫、妻双方对家庭资金的投入比例,以股份的形式由双方分别拥有。

 

第十四条:家庭的维护和经营必须投入资金。资金的来源主要依靠夫、妻双方的个人收入。其它来源不包括在夫妻个人收入中。(例如:遗产、馈赠)

第十五条:夫、妻双主均有义务将个人收入(主要指固定收入)的60%投入家庭事务中来。夫、妻双方的剩余40%的收入,个人有权随意使用,也可以投入到家庭事务中来(须以自愿为原则,对方不得强迫)。

 

第十六条:夫、妻双方用于家庭建设的资金,由夫、妻双方共同使用于家庭生活中,个人的事务均不得使用共有资金。由共有资金购置的固定资产按当月(数目大的按当年或三年)的夫妻双方的资金比例,以股份形式确定所有权。

 

第十七条:家庭必须设立财会帐目表、资产统计表,按月统计和结算。

 

第十八条:在家庭生活中,购置物品或进行消费,应当双方协商进行,如协商不成,由资金投入多的一方决定,但应当将对方所占资金比例部分,由个人部分资金中承付。

 

第十九条:夫、妻生活中,某共有资产如一方使用较多,而他方几乎不使用,最好由使用一方赎为个人财产。

 

第二十条:家庭生活消费应当分为三部分,即日常生活消费、储蓄和投资。具体细节由夫、妻双方商定。

第二十一条:夫、妻任何一方不得将个人财产或拥有的股份赠予对方,任何一方均不得使用赌博、请求或以其它方法获得对方的财产或资金。夫、妻双方允许将个人资金借贷给对方,对方需用自己的财产或股份作抵押才算有效。任何借贷均应有书面记录和签名。

 

第二十二条:在婚姻生活中或结束后,夫、妻双方的任何一方都自愿放弃做为对方第一顺序继承人的资格,以杜绝任何以婚姻为目的,骗取钱财的阴谋。

2008年11月06日

杭州的扒手越来越多了

归档在: 胡说八道 — JACKEYJ @ 9:18 PM

今天下班,刚走过学院路和天目山路红绿灯,就听到一个mm说小心,从我身边跑过,这时猛然回头,发现一个维族的年轻男子贴在我身边,正准备发作,那个mm说他们有三个人。此时才看清楚那个人面貌,只见他愤愤地用眼睛瞪那个mm。看他们人都始终,就不发作了,再说自己东西还没有被窃。

这突然又让我想起来在9月份的时候,我骑自行车在文三路上,刚过学军中学的公交站,感觉身边不对劲,回头一看发现一个小子,正在拉我的包。当即叫了一声,那人好像也赶紧很突然,怔了一下,然后朝后面走开。

现在杭州的外来人口越来越多,连小偷也见多了。不知道杭州的警察叔叔怎么想。

不过防范扒手的措施大家还是得学习一下:

1.  不要把包包,背在身后,不管是双肩的还是挎包。

2. 骑车子等红绿灯的时候也要小心,在这个时候恰恰是小偷容易得手的时候。

3. 上公交车的身后要小心,不用为了强到一个位子,拼命的往上挤。如果你挤了,就是给小偷一个好机会。这个我以前晚上在火车东站做215的时候遇到过多次,都是一帮小年轻的,等车子到站,他们就在人群中挤动,找机会下手。一次上了车一个mm发现手机不见了。更加猖狂的是,一次有两拨小偷居然在火车东站打斗。

下一页 »

Powered by ZJANT