lighttpd configure java web server

我的apache 2.061在window 2003 下老是报告错误,虽然也可以使用但感觉很不爽.错误入下,找了很久也没有办法,包括修复sockt也没用.报告队列中的错误: 错误应用程序 Apache.exe,版本 2.0.61.200,错误模块 ntdll.dll,版本 5.2.3790.3959,错误地一直想找一个替代apache的软件,最近看了lighttpd想用lighttpd来替代apache,先下放过资料.下载地址.http://ftp.dtech.hu/pub/WLMP-Project/LightTPD-Win32/ . When to use lighttpd You can use lighttpd to secure access to your application server reduce load on your server by offloading static requests load balance your application servers use lighttpd’s spambot and bad bot blocking capabilities get more request rewriting and redirecting flexibility use … Continue reading "lighttpd configure java web server"

用mysqldumpslow分析mysql的slow query log

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行 long_query_time = 1log-slow-queries = /var/youpath/slow.loglog-queries-not-using-indexes long_query_time 是指执行超过多久的sql会被log下来,这里是1秒。log-slow-queries 设置把日志写在那里,可以为空,系统会给一个缺省的文件host_name-slow.log,我生成的log就在mysql的data目录log-queries-not-using-indexes 就是字面意思,log下来没有使用索引的query。 把上述参数打开,运行一段时间,就可以关掉了,省得影响生产环境。 接下来就是分析了,我这里的文件名字叫host-slow.log。先mysqldumpslow –help以下,俺主要用的是-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default-t NUM just show the top n queries-g PATTERN grep: only consider stmts that include this string -s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙-t,是top n的意思,即为返回前面多少条的数据-g,后边可以写一个正则匹配模式,大小写不敏感的 mysqldumpslow -s c -t 20 host-slow.logmysqldumpslow -s r -t … Continue reading "用mysqldumpslow分析mysql的slow query log"

Configure lighttpd alias (mod_alias)

This lighttpd module provides for mapping different parts of the host filesystem in the document tree. You can use it for mapping various directories. For example cgi-bin directory mapped to /var/lib/cgi-bin. Configuration Open your lighttpd configuration file: vi /etc/lighttpd/lighttpd.conf Append/add mod_ alias to list of server modules:server.modules += ( “mod_alias” ) Examples Add cgi-bin alias … Continue reading "Configure lighttpd alias (mod_alias)"

机子无故变慢?——硬盘的DMA模式变成了PIO模式

如果你的机子变得很慢,甚至连播放影片都有卡声音的现象,又差不 出任何病毒,怎么回事?很可能是你的机子的硬盘的DMA模式变成了PI O模式了。   硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA 66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多 数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式 传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作 用。以前有很多文章介绍过如何打开DMA模式,我在这里也就不多说了 。   但笔者发现一个新的“问题”——Windows2000、XP、2003系统有 时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使 用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速 度明显变慢,一般来说正常WindowsXP系统启动时那个由左向右运动的 滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次 或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一 些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏 时(比如极品飞车6)画面时有明显停顿(很多人这时以为是自己的显 卡问题,当然如果你使用的是三年前的显卡玩这些游戏是有点老了, 但如果你用的是今年才买的GF显卡那就不是它的问题了),出现以上 问题时大家最好看看自己硬盘的DMA模式是不是被Windows系统自行关 闭了。查看自己的系统是否打开DMA模式:   1. 双击“管理工具”,然后双击“计算机管理”;   2. 单击“系统工具”,然后单击“设备管理器”;   3. 展开“IDE ATA/ATAPI 控制器”节点;   4. 双击您的“主要IDE控制器”;   5. 点击“高级设置”。   看到“设备0”,下面的传输模式应设为“DMA(若可用)”,再 下面“当前传输模式”,如果是“Ultra DMAMode*(*为数字,DMA33 为2,DMA66为4,DMA100为5、DMA133为6)”,那么你的系统正常,但 如果以前你自己设的是“UltraDMAMode 6”又没有改动,而现在是“Ultra DMA Mode 4”或“Ultra DMA Mode2”更或者是“PIO模式”而且改不过来!可能就是系统自行关闭 了DMA模式了。   分析问题:   好了,先来说说问题是如何产生的。在Windows 2000/XP/2003中 有这样一个设定: WindowsIDE/ATAPI端口驱动程序 (Atapi.sys) 累 积收到总共6个超时或循环冗余检验(CRC)错误后,驱动程序将把通信 速度(传送模式)从最快的直接内存访问 (DMA) … Continue reading "机子无故变慢?——硬盘的DMA模式变成了PIO模式"

盜版的 Windows XP 有福了!微軟發佈 VLK 大量授權序號!

盜版的 Windows XP PRO 作業系統使用者有福了!微軟公佈了 VLK 大量授權序號。更改序號後,無需使用網路上的破解驗證,使用此序號者,皆可正大光明的通過微軟驗證!以下序號皆為 VLK 大量授權序號:HCQ9D-TVCWX-X9QRG-J4B2Y-GR2TTMRX3F-47B9T-2487J-KWKMF-RPWBYQC986-27D34-6M3TY-JJXP9-TBGMDCM3HY-26VYW-6JRYC-X66GX-JVY2DDP7CM-PD6MC-6BKXT-M8JJ6-RPXGJF4297-RCWJP-P482C-YY23Y-XH8W3    HH7VV-6P3G9-82TWK-QKJJ3-MXR96所有序號皆適用於 Windows XP/SP1/SP2【使用說明】: 1.開啟 KeyFinder, 點選 Option 的 Change Windows Key。 2.輸入以上 VLK 大量授權序號,任選一組(一定要輸入正確,否會失敗)。 3.完畢後點選 Change 會出現成功訊息,按下 OK 後,在按 Close。       KeyFinder︰http://www.magicaljellybean.com/downloads/kf151.zip         完畢後點選微軟驗證       微軟驗證︰http://www.microsoft.com/genuine/downloads/Validate.aspx?displaylang=zh-tw

巧用tmpfs加速你的linux服务器

巧用tmpfs加速你的linux服务器 今天从朋友高春辉那里又学了一招,就是使用tmpfs,我把他消化后用来实现虚拟磁盘来存放squid的缓存文件和php的seesion。速度快不少哦! 默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。 tmpfs有以下优势:1。动态文件系统的大小,2。tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。3。tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。 好了讲了一些大道理,大家看的烦了吧,还是讲讲我的应用吧:) 首先在/dev/stm建个tmp文件夹,然后与实际/tmp绑定 mkdir /dev/shm/tmpchmod 1777 /dev/shm/tmpmount –bind /dev/shm/tmp /tmp 1。squid的缓存目录设置 vi /etc/squid/squid.conf 修改成cache_dir ufs /tmp 256 16 256这里的第一个256表示使用256M内存,我觉得高性能LINUX双效防火墙HOWTO使用ramdisk的方法还不如直接使用tmpfs,至少每次启动不用mkfs,还可以动态改变大小。 然后重启一下服务,ok,现在所有的squid缓存文件都保存倒tmpfs文件系统里了,很快哦。 2。对php性能的优化 对于一个访问量大的以apache+php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。 保存seesion的方法很简单了只要修改php.ini就行了,由于我已经把/dev/stm/tmp与/tmp绑定,所以不改写也行,至于php程序产生的缓存文件那只能改自己的php程序了:) 希望我的这个方法,能对你有所启发。 参考文档:使用虚拟内存(virtual memory,VM)文件系统和绑定安装

lucene的简单实例<一>

 说明一下,这一篇文章的用到的lucene,是用2.0版本的,主要在查询的时候2.0版本的lucene与以前的版本有了一些区别. 其实这一些代码都是早几个月写的,自己很懒,所以到今天才写到自己的博客上,高深的文章自己写不了,只能记录下一些简单的记录与点滴,其中的代码算是自娱自乐的,希望高手不要把重构之类的砸下来… 1、在windows系统下的的C盘,建一个名叫s的文件夹,在该文件夹里面随便建三个txt文件,随便起名啦,就叫”1.txt”,”2.txt”和”3.txt”啦 其中1.txt的内容如下: Java代码 中华人民共和国   全国人民   2006年  中华人民共和国 全国人民 2006年而”2.txt”和”3.txt”的内容也可以随便写几写,这里懒写,就复制一个和1.txt文件的内容一样吧 2、下载lucene包,放在classpath路径中 建立索引: Java代码 package lighter.javaeye.com;      import java.io.BufferedReader;   import java.io.File;   import java.io.FileInputStream;   import java.io.IOException;   import java.io.InputStreamReader;   import java.util.Date;      import org.apache.lucene.analysis.Analyzer;   import org.apache.lucene.analysis.standard.StandardAnalyzer;   import org.apache.lucene.document.Document;   import org.apache.lucene.document.Field;   import org.apache.lucene.index.IndexWriter;      /**   * author lighter date 2006-8-7   */   public class TextFileIndexer {       public static void main(String[] args) throws Exception {           /* 指明要索引文件夹的位置,这里是C盘的S文件夹下 */           File fileDir = new File(“c:\\s”);              /* 这里放索引文件的位置 */           File indexDir = new File(“c:\\index”);           Analyzer luceneAnalyzer = new StandardAnalyzer();           IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer,                   true);           File[] textFiles = fileDir.listFiles();           long startTime = new Date().getTime();                      //增加document到索引去           for (int i = 0; i < textFiles.length; i++) {               if (textFiles[i].isFile()                       && textFiles[i].getName().endsWith(“.txt”)) {                   System.out.println(“File “ + textFiles[i].getCanonicalPath()                           + “正在被索引….”);                   String temp = FileReaderAll(textFiles[i].getCanonicalPath(),                           “GBK”);                   System.out.println(temp);                   Document document = new Document();                   Field FieldPath = new Field(“path”, textFiles[i].getPath(),   … Continue reading "lucene的简单实例<一>"

lucene简单实例<二>

 写文章的时候,感觉比较难写的就是标题,有时候不知道起什么名字好,反正这里写的都是关于lucene的一些简单的实例,就随便起啦. Lucene 其实很简单的,它最主要就是做两件事:建立索引和进行搜索 来看一些在lucene中使用的术语,这里并不打算作详细的介绍,只是点一下而已—-因为这一个世界有一种好东西,叫搜索。 IndexWriter:lucene中最重要的的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。 Analyzer:分析器,主要用于分析搜索引擎遇到的各种文本。常用的有StandardAnalyzer分析器,StopAnalyzer分析器,WhitespaceAnalyzer分析器等。 Directory:索引存放的位置;lucene提供了两种索引存放的位置,一种是磁盘,一种是内存。一般情况将索引放在磁盘上;相应地lucene提供了FSDirectory和RAMDirectory两个类。 Document:文档;Document相当于一个要进行索引的单元,任何可以想要被索引的文件都必须转化为Document对象才能进行索引。 Field:字段。 IndexSearcher:是lucene中最基本的检索工具,所有的检索都会用到IndexSearcher工具; Query:查询,lucene中支持模糊查询,语义查询,短语查询,组合查询等等,如有TermQuery,BooleanQuery,RangeQuery,WildcardQuery等一些类。 QueryParser: 是一个解析用户输入的工具,可以通过扫描用户输入的字符串,生成Query对象。 Hits:在搜索完成之后,需要把搜索结果返回并显示给用户,只有这样才算是完成搜索的目的。在lucene中,搜索的结果的集合是用Hits类的实例来表示的。 上面作了一大堆名词解释,下面就看几个简单的实例吧: 1、简单的的StandardAnalyzer测试例子 Java代码 package lighter.javaeye.com;      import java.io.IOException;   import java.io.StringReader;      import org.apache.lucene.analysis.Analyzer;   import org.apache.lucene.analysis.Token;   import org.apache.lucene.analysis.TokenStream;   import org.apache.lucene.analysis.standard.StandardAnalyzer;      public class StandardAnalyzerTest    {       //构造函数,       public StandardAnalyzerTest()       {       }       public static void main(String[] args)        {           //生成一个StandardAnalyzer对象           Analyzer aAnalyzer = new StandardAnalyzer();           //测试字符串           StringReader sr = new StringReader(“lighter javaeye com is the are on”);           //生成TokenStream对象           TokenStream ts = aAnalyzer.tokenStream(“name”, sr);            try {               int i=0;               Token t = ts.next();               while(t!=null)               {                   //辅助输出时显示行号                   i++;                   //输出处理后的字符                   System.out.println(“第”+i+“行:”+t.termText());                   //取得下一个字符                   t=ts.next();               }           } catch (IOException e) {               e.printStackTrace();   … Continue reading "lucene简单实例<二>"

Linux user commands

Every user who has access to a Linux system needs a login and a password. Each user must belong to a primary group and for security or access purposes can belong to several secondary groups. In order to create new logins, modify or delete users, you must already be logged in as root.  The root … Continue reading "Linux user commands"