http://blog.csdn.net/function413/article/details/8485822
1、下載log4j下載1.2以后的版本
下載地址:http://logging.apache.org/log4j/1.2/download.html
2、下載tomcat-juli.jar,tomcat-juli-adapters.jar
使用LOG4J來接管tomcat6.0.18的日志文件必須要下載兩個文件:tomcat-juli.jar,tomcat-juli-adapters.jar。
下載地址為:http://www.apache.org/dist/tomcat/tomcat-6/v6.0.18/bin/extras/ (如果tomcat為其他版本,請下載對應(yīng)版本的類包)
二、修改相關(guān)配置文件
1、修改${catalina.home}/conf/context.xml
修改:<Context >為<Context swallowOutput="true" >只有這樣才能完全的把tomcat的stdout給接管過來。這一步很關(guān)鍵 在官網(wǎng)及網(wǎng)上找了許多資料都沒有提及。
2、復(fù)制log4j.jar到${catalina.home}/lib下
3、復(fù)制tomcat-juli-adapters.jar到${catalina.home}/lib下
4、復(fù)制tomcat-juli.jar到${catalina.home}/bin下,在該目錄會存在該文件,覆蓋 即可
5、建立log4j.properties,并把其放到${catalina.home}/lib下
posted @
2013-11-21 14:43 George Gong 閱讀(2035) |
評論 (0) |
編輯 收藏
在維護(hù)服務(wù)器時常常需要用到linux Shell命令,將常用的寫在這里備查:
telnet 10.10.50.122 7070
nslookup 查看域名解析
netstat -anp 顯示系統(tǒng)端口使用情況 a表示全部socket n不解析名稱 p顯示PID
lsof -i :端口 顯示占用該端口的進(jìn)程情況
last
history
scp root@10.10.10.11:/home/asd/we.zip /home/we/ scp文件傳輸
w 當(dāng)前登錄用戶
ps -ef|grep java 不解釋!
查看機(jī)器吞吐量(throughput)
sudo ifconfig eth0
iftop 監(jiān)視網(wǎng)卡即時吞吐量
iptraf 監(jiān)視網(wǎng)卡即時吞吐量
iostat 磁盤吞吐量查看
iostat 結(jié)果解釋
* rrqm/s: 每秒進(jìn)行 merge 的讀操作數(shù)目。即 delta(rmerge)/s
* wrqm/s: 每秒進(jìn)行 merge 的寫操作數(shù)目。即 delta(wmerge)/s
* r/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。即 delta(rio)/s
* w/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。即 delta(wio)/s
* rsec/s: 每秒讀扇區(qū)數(shù)。即 delta(rsect)/s
* wsec/s: 每秒寫扇區(qū)數(shù)。即 delta(wsect)/s
* rkB/s: 每秒讀K字節(jié)數(shù)。是 rsect/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié)。(需要計(jì)算)
* wkB/s: 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。(需要計(jì)算)
* avgrq-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。delta(rsect+wsect)/delta(rio+wio)
* avgqu-sz: 平均I/O隊(duì)列長度。即 delta(aveq)/s/1000 (因?yàn)閍veq的單位為毫秒)。
* await: 平均每次設(shè)備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
* svctm: 平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。即 delta(use)/delta(rio+wio)
* %util: 一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊(duì)列是非空的。即 delta(use)/s/1000 (因?yàn)閡se的單位為毫秒)
df -m 硬盤使用情況
free -m 內(nèi)存使用情況
top 查看CPU使用情況
關(guān)于 load average
一般來說只要每個CPU的當(dāng)前活動進(jìn)程數(shù)不大于3那么系統(tǒng)的性能就是良好的,如果每個CPU的任務(wù)數(shù)大于5,那么就表示這臺機(jī)器的性能有嚴(yán)重問題。
對于上面的例子來說,假設(shè)系統(tǒng)有兩個CPU,那么其每個CPU的當(dāng)前任務(wù)數(shù)為:8.13/2=4.065。這表示該系統(tǒng)的性能是可以接受的。
查看機(jī)器硬件信息
測試機(jī)器的硬件信息:
查看CPU信息(型號)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
(看到有8個邏輯CPU, 也知道了CPU型號)
# cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
(說明實(shí)際上是兩顆4核的CPU)
# getconf LONG_BIT
32
(說明當(dāng)前CPU運(yùn)行在32bit模式下, 但不代表CPU不支持64bit)
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
8
(結(jié)果大于0, 說明支持64bit計(jì)算. lm指long mode, 支持lm則是64bit)
再完整看cpu詳細(xì)信息, 不過大部分我們都不關(guān)心而已.
# dmidecode | grep 'Processor Information'
查看內(nèi) 存信息
# cat /proc/meminfo
# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看當(dāng)前操作系統(tǒng)內(nèi)核信息)
# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(查看當(dāng)前操作系統(tǒng)發(fā)行版信息)
查看機(jī)器型號
# dmidecode | grep "Product Name"
查看網(wǎng)卡信息
# dmesg | grep -i eth
du -ms /usr/local/jdk 查看文件夾使用的空間大小
du -sm * | sort -n 當(dāng)前路徑下各文件夾大小,并排序顯示
posted @
2010-10-18 11:40 George Gong 閱讀(467) |
評論 (1) |
編輯 收藏
Ubuntu Linux系統(tǒng)環(huán)境變量配置文件介紹在Ubuntu中有如下幾個文件可以設(shè)置環(huán)境變量
/etc/profile:在登錄時,操作系統(tǒng)定制用戶環(huán)境時使用的第一個文件,此文件為系統(tǒng)的每個用戶設(shè)置環(huán)境信息,當(dāng)用戶第一次登錄時,該文件被執(zhí)行。
/etc/environment:在登錄時操作系統(tǒng)使用的第二個文件,系統(tǒng)在讀取你自己的 profile前,設(shè)置環(huán)境文件的環(huán)境變量。
~/.profile:在登錄時用到的第三個文件是.profile文件,每個用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時,該文件僅僅執(zhí)行一次!默認(rèn)情況下,他設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件。
/etc/bashrc:為每一個運(yùn)行bash shell的用戶執(zhí)行此文件.當(dāng)bash shell被打開時,該文件被讀取.
~/.bashrc:該文件包含專用于你的bash shell的bash信息,當(dāng)?shù)卿洉r以及每次打開新的shell時,該該文件被讀取。
使用source命令刷新環(huán)境變量
posted @
2010-10-18 11:39 George Gong 閱讀(376) |
評論 (0) |
編輯 收藏
原文地址:
http://ifelseif.blog.sohu.com/145381162.html
聽說支持向量機(jī)是比神經(jīng)網(wǎng)絡(luò)還牛X的分類器,我就拿來玩了玩,用國立臺灣大學(xué)Chih-Chung Chang和Chih-Jen Lin編寫的libsvm函數(shù)庫。國內(nèi)的網(wǎng)站很多帖子都抄來抄去的,犯錯bug都一樣。哎,希望此貼可以正本清源。
首先下載libSVM的最新版本,他們的主頁在此http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html。源碼和手冊都有,真是好人啊!手冊寫的清晰明了通俗易懂,盡管是英文的。想快速上手看具體操作步驟的直接翻到appendix吧。
在linux下部署libSVM是簡單到不能再簡單了,make一下就完事兒了。什么!你沒有g(shù)cc,沒有python,沒有g(shù)nuplot?自己apt-get去吧。
用windows的童鞋,首先你們要安裝python和gnuplot。python的主頁為http://www.python.org/,安裝程序可以在這里下載。gnuplot的主頁為http://www.gnuplot.info/download.html,安裝程序在這里。python是需要安裝的,gnuplot是綠色軟件找個地方解壓就行。如果你網(wǎng)速快的話強(qiáng)烈推薦pythonxy這個東西,python科學(xué)計(jì)算相關(guān)的軟件包基本都包括了,有功夫好好學(xué)吧開源的哦。
需要手工添加環(huán)境變量,保證python根目錄,gnuplot的bin目錄,libsvm的windows目錄都在path里面,我的電腦上是c:\python26,C:\Python26\gnuplot\bin,c:\Users\gongwei\program\libsvm-2.9\windows\。然后還要改libSVM\tools目錄下的easy.py和grid.py文件,把gnuplot路徑那一項(xiàng)改成gnuplot_exe = r"C:\Python26\gnuplot\bin\pgnuplot.exe"。gnuplot有三個exe,這里只能用這個因?yàn)樗梢酝ㄟ^管道輸入數(shù)據(jù),另外兩個都不行。都弄完之后,嘗試運(yùn)行一下吧:
python easy.py train.1 test.1
其中train.1和test.1都是作者提供的測試數(shù)據(jù)。可以在這里下載guide里面的數(shù)據(jù),這里還有更多。
好啦下面就等著彈窗吧,會彈出一個gnuplot的窗口,里面的圖像會隨著網(wǎng)絡(luò)的訓(xùn)練逐步更新。大功告成!
libSVM的使用很簡單,會用python的可以參考easy.py和grid.py寫自己的script。libSVM使用c++編寫,提供java的源碼,還支持R (also Splus), MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, LabVIEW的調(diào)用。想用的話基本都有自己適合的環(huán)境。
最后還是要感謝libSVM的幾位作者們,寫出這么好的軟件。向臺灣同胞致敬!
posted @
2010-09-19 22:25 George Gong 閱讀(884) |
評論 (0) |
編輯 收藏
原文地址:http://www.google.com.hk/ggblog/googlechinablog/2006/06/blog-post_3066.html
2006年6月27日 上午 09:53:00
發(fā)表者:吳軍,Google 研究員
[我們已經(jīng)談過了如何自動下載網(wǎng)頁、如何建立索引、如何衡量網(wǎng)頁的質(zhì)量(Page Rank)。我們今天談?wù)勅绾未_定一個網(wǎng)頁和某個查詢的相關(guān)性。了解了這四個方面,一個有一定編程基礎(chǔ)的讀者應(yīng)該可以寫一個簡單的搜索引擎了,比如為您所在的學(xué)校或院系建立一個小的搜索引擎。]
我們還是看上回的例子,查找關(guān)于“原子能的應(yīng)用”的網(wǎng)頁。我們第一步是在索引中找到包含這三個詞的網(wǎng)頁(詳見關(guān)于布爾運(yùn)算的系列)。現(xiàn)在任何一個搜索引擎都包含幾十萬甚至是上百萬個多少有點(diǎn)關(guān)系的網(wǎng)頁。那么哪個應(yīng)該排在前面呢?顯然我們應(yīng)該根據(jù)網(wǎng)頁和查詢“原子能的應(yīng)用”的相關(guān)性對這些網(wǎng)頁進(jìn)行排序。因此,這里的關(guān)鍵問題是如何度量網(wǎng)頁和查詢的相關(guān)性。
我們知道,短語“原子能的應(yīng)用”可以分成三個關(guān)鍵詞:原子能、的、應(yīng)用。根據(jù)我們的直覺,我們知道,包含這三個詞多的網(wǎng)頁應(yīng)該比包含它們少的網(wǎng)頁相關(guān)。當(dāng)然,這個辦法有一個明顯的漏洞,就是長的網(wǎng)頁比短的網(wǎng)頁占便宜,因?yàn)殚L的網(wǎng)頁總的來講包含的關(guān)鍵詞要多些。因此我們需要根據(jù)網(wǎng)頁的長度,對關(guān)鍵詞的次數(shù)進(jìn)行歸一化,也就是用關(guān)鍵詞的次數(shù)除以網(wǎng)頁的總字?jǐn)?shù)。我們把這個商稱為“關(guān)鍵詞的頻率”,或者“單文本詞匯頻率”(Term Frequency),比如,在某個一共有一千詞的網(wǎng)頁中“原子能”、“的”和“應(yīng)用”分別出現(xiàn)了 2 次、35 次 和 5 次,那么它們的詞頻就分別是 0.002、0.035 和 0.005。 我們將這三個數(shù)相加,其和 0.042 就是相應(yīng)網(wǎng)頁和查詢“原子能的應(yīng)用”
相關(guān)性的一個簡單的度量。概括地講,如果一個查詢包含關(guān)鍵詞 w1,w2,...,wN, 它們在一篇特定網(wǎng)頁中的詞頻分別是: TF1, TF2, ..., TFN。 (TF: term frequency)。 那么,這個查詢和該網(wǎng)頁的相關(guān)性就是:
TF1 + TF2 + ... + TFN。
讀者可能已經(jīng)發(fā)現(xiàn)了又一個漏洞。在上面的例子中,詞“的”站了總詞頻的 80% 以上,而它對確定網(wǎng)頁的主題幾乎沒有用。我們稱這種詞叫“應(yīng)刪除詞”(Stopwords),也就是說在度量相關(guān)性是不應(yīng)考慮它們的頻率。在漢語中,應(yīng)刪除詞還有“是”、“和”、“中”、“地”、“得”等等幾十個。忽略這些應(yīng)刪除詞后,上述網(wǎng)頁的相似度就變成了0.007,其中“原子能”貢獻(xiàn)了0.002,“應(yīng)用”貢獻(xiàn)了 0.005。
細(xì)心的讀者可能還會發(fā)現(xiàn)另一個小的漏洞。在漢語中,“應(yīng)用”是個很通用的詞,而“原子能”是個很專業(yè)的詞,后者在相關(guān)性排名中比前者重要。因此我們需要給漢語中的每一個詞給一個權(quán)重,這個權(quán)重的設(shè)定必須滿足下面兩個條件:
1. 一個詞預(yù)測主題能力越強(qiáng),權(quán)重就越大,反之,權(quán)重就越小。我們在網(wǎng)頁中看到“原子能”這個詞,或多或少地能了解網(wǎng)頁的主題。我們看到“應(yīng)用”一次,對主題基本上還是一無所知。因此,“原子能“的權(quán)重就應(yīng)該比應(yīng)用大。
2. 應(yīng)刪除詞的權(quán)重應(yīng)該是零。
我們很容易發(fā)現(xiàn),如果一個關(guān)鍵詞只在很少的網(wǎng)頁中出現(xiàn),我們通過它就容易鎖定搜索目標(biāo),它的權(quán)重也就應(yīng)該大。反之如果一個詞在大量網(wǎng)頁中出現(xiàn),我們看到它仍然不很清楚要找什么內(nèi)容,因此它應(yīng)該小。概括地講,假定一個關(guān)鍵詞 w 在 Dw 個網(wǎng)頁中出現(xiàn)過,那么 Dw 越大,w 的權(quán)重越小,反之亦然。在信息檢索中,使用最多的權(quán)重是“逆文本頻率指數(shù)” (Inverse document frequency 縮寫為IDF),它的公式為log(D/Dw)其中D是全部網(wǎng)頁數(shù)。比如,我們假定中文網(wǎng)頁數(shù)是D=10億,應(yīng)刪除詞“的”在所有的網(wǎng)頁中都出現(xiàn),即Dw=10億,那么它的IDF=log(10億/10億)= log (1) = 0。假如專用詞“原子能”在兩百萬個網(wǎng)頁中出現(xiàn),即Dw=200萬,則它的權(quán)重IDF=log(500) =6.2。又假定通用詞“應(yīng)用”,出現(xiàn)在五億個網(wǎng)頁中,它的權(quán)重IDF = log(2)
則只有 0.7。也就只說,在網(wǎng)頁中找到一個“原子能”的比配相當(dāng)于找到九個“應(yīng)用”的匹配。利用 IDF,上述相關(guān)性計(jì)算個公式就由詞頻的簡單求和變成了加權(quán)求和,即 TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。在上面的例子中,該網(wǎng)頁和“原子能的應(yīng)用”的相關(guān)性為 0.0161,其中“原子能”貢獻(xiàn)了 0.0126,而“應(yīng)用”只貢獻(xiàn)了0.0035。這個比例和我們的直覺比較一致了。
TF/IDF(term frequency/inverse document frequency) 的概念被公認(rèn)為信息檢索中最重要的發(fā)明。在搜索、文獻(xiàn)分類和其他相關(guān)領(lǐng)域有廣泛的應(yīng)用。講起 TF/IDF 的歷史蠻有意思。IDF 的概念最早是劍橋大學(xué)的斯巴克-瓊斯[注:她有兩個姓] (Karen Sparck Jones)提出來的。斯巴克-瓊斯 1972 年在一篇題為關(guān)鍵詞特殊性的統(tǒng)計(jì)解釋和她在文獻(xiàn)檢索中的應(yīng)用的論文中提出IDF。遺憾的是,她既沒有從理論上解釋為什么權(quán)重IDF 應(yīng)該是對數(shù)函數(shù) log(D/Dw)(而不是其它的函數(shù),比如平方根),也沒有在這個題目上作進(jìn)一步深入研究,以至于在以后的很多文獻(xiàn)中人們提到 TF/IDF 時沒有引用她的論文,絕大多數(shù)人甚至不知道斯巴克-瓊斯的貢獻(xiàn)。同年羅賓遜寫了個兩頁紙的解釋,解釋得很不好。倒是后來康乃爾大學(xué)的薩爾頓(Salton)多次寫文章、寫書討論 TF/IDF 在信息檢索中的用途,加上薩爾頓本人的大名(信息檢索的世界大獎就是以薩爾頓的名字命名的)。很多人都引用薩爾頓的書,甚至以為這個信息檢索中最重要的概念是他提出的。當(dāng)然,世界并沒有忘記斯巴克-瓊斯的貢獻(xiàn),2004年,在紀(jì)念文獻(xiàn)學(xué)學(xué)報(bào)創(chuàng)刊 60 周年之際,該學(xué)報(bào)重印了斯巴克-瓊斯的大作。羅賓遜在同期期刊上寫了篇文章,用香農(nóng)的信息論解釋 IDF,這回的解釋是對的,但文章寫的并不好、非常冗長(足足十八頁),把一個簡單問題搞復(fù)雜了。其實(shí),信息論的學(xué)者們已經(jīng)發(fā)現(xiàn)并指出,其實(shí) IDF 的概念就是一個特定條件下、關(guān)鍵詞的概率分布的交叉熵(Kullback-Leibler Divergence)(詳見上一系列)。這樣,信息檢索相關(guān)性的度量,又回到了信息論。
現(xiàn)在的搜索引擎對 TF/IDF 進(jìn)行了不少細(xì)微的優(yōu)化,使得相關(guān)性的度量更加準(zhǔn)確了。當(dāng)然,對有興趣寫一個搜索引擎的愛好者來講,使用 TF/IDF 就足夠了。 如果我們結(jié)合上網(wǎng)頁排名(Page Rank),那么給定一個查詢,有關(guān)網(wǎng)頁綜合排名大致由相關(guān)性和網(wǎng)頁排名乘積決定。
posted @
2010-09-19 19:45 George Gong 閱讀(224) |
評論 (0) |
編輯 收藏
Ubuntu 10.04下默認(rèn)的即時通訊是Empathy,但Empathy的plugin還不多,它可以通過安裝plugin來獲取Pidgin下的plugin。Pidgin下只需要安裝pidgin-sipe就可以登錄Communicator賬號。我查了很多資料,最終Empathy沒有弄好,只弄好了pidgin。
由于Ubuntu 10.04沒有Pidgin,首先安裝Pidgin,然后通過 sudo apt-get install pidgin-sipe命令安裝,注意這個pidgin-sipe的版本要在1.8.0+,這個是10.04下的默認(rèn)版本。然后重啟Pidgin后賬號類型會多了一項(xiàng)“Office Communicator”,接著輸入你的賬號就可以了。
至于Empathy,有人通過pidgin-sipe + telepathy-haze 兩個plugin配置成功了,不過我沒有成功,以后再說吧:)
posted @
2010-05-21 10:05 George Gong 閱讀(886) |
評論 (0) |
編輯 收藏
http://persevere.javaeye.com/blog/653716
這幾天安裝了Ubuntu 10.04,確實(shí)很不錯。但一不小心把頂端的面板給刪除了,這下麻煩了。雖然可以通過“新建面板”“添加到面板”一一恢復(fù),但一一查找都很麻煩,有沒有一種辦法可以恢復(fù)默認(rèn)的頂端面板。可以通過以下步驟:
通過ALT+F2呼出應(yīng)用程序?qū)υ捒颍斎雊nome-terminal打開終端輸入以下命令:
gconftool --recursive-unset/apps/panel
rm -rf ~/.gconf/apps/panel
pkill gnome-panel
這樣就OK了
posted @
2010-05-21 09:45 George Gong 閱讀(689) |
評論 (1) |
編輯 收藏
最近開始用eclipse3.5,下載了maven插件m2eclipse,使用后才發(fā)現(xiàn)每次project clean的時候這個maven builder都會自動執(zhí)行,這個很惡心。google了半天也沒找到解決辦法,惡心。
posted @
2010-04-30 11:24 George Gong 閱讀(7467) |
評論 (2) |
編輯 收藏
系統(tǒng)之前一直用的是maven-artifact-ant-2.0.4-dep.jar,但最近對一些jar包支持不好,運(yùn)行ant腳本出現(xiàn)以下問題:
[artifact:dependencies] [WARNING] POM for 'ch.qos.logback:logback-classic:pom:0.9.9' is invalid. It will be ignored for artifact resolution. Reason: The POM expression: ${parent.version} could not be evaluated. Reason: ch.qos.logback:logback-classic:jar:${parent.version} references itself.
這樣的話這個忽略的jar包就得手動copy了,這樣你還得找這個jar包依賴的其他jar包是不是存在。后來在網(wǎng)上google了一下,發(fā)現(xiàn)現(xiàn)在都用maven-ant-tasks-2.1.0.jar,然后對build.xml稍作改動,如下即可:
<?xml version="1.0" encoding="UTF-8"?>
<project name="hehe" default="maven-jar" xmlns:artifact="urn:maven-artifact-ant">
<property file="build.properties" />
<target name="maven-jar" description="Use Maven2 to manage jars' dependencies">
<echo message="deleting old jar
.. " />
<delete dir="${web.dir}/WEB-INF/lib" />
<copy todir="${web.dir}/WEB-INF/lib">
<fileset id="runtimeFiles" dir="lib/mylib">
<include name="**/*.jar" />
</fileset>
<mapper type="flatten" />
</copy>
<echo message="Use Maven2 to manage jar
." />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
<classpath>
<pathelement location="lib/maven-ant-tasks-2.1.0.jar" />
</classpath>
</typedef>

<artifact:pom file="pom.xml" id="my.pom" />

<artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" usescope="runtime">
<pom refid="my.pom" />
</artifact:dependencies>

<copy todir="${web.dir}/WEB-INF/lib">
<fileset refid="dependency.fileset" />
<mapper type="flatten" />
</copy>
</target>
</project>
這樣就OK了
posted @
2010-04-30 00:12 George Gong 閱讀(2204) |
評論 (0) |
編輯 收藏