<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    服務腳本在 sapi/fpm/init.d.php-fpm

    cp sapi/fpm/init.d.php-fpm /etc/rc.local/init.d/php-fpm

    chmod +x /etc/rc.local/init.d/php-fpm

    chkconfig --add php-fpm
    posted @ 2013-09-26 12:14 小馬歌 閱讀(433) | 評論 (0)編輯 收藏
     
         摘要: 成功命令:# cc -o my_math.so my_math.c -Wall -llua -ldl -lm -shared# lua callc.lua過程中出現的問題:1. 無法編譯過去,“ warning: implicit declarat...  閱讀全文
    posted @ 2013-09-17 12:30 小馬歌 閱讀(1054) | 評論 (0)編輯 收藏
     

    一、Shell:命令行編輯的功能(快捷鍵技巧)

    Ctrl+a光標移到行首

    按ctrl+a后其結果如下:

     

    Ctrl+e光標移到行尾

    Ctrl+u刪除光標處到行首的內容

    Ctrl+k刪除光標處到行尾的內容

    Ctrl+arrow(左右箭頭)

    二、globbing:文件名通配

     通配符有:

    *:任意長度的任意字符

    如:a*b:表示以a開頭并以b結尾中間含有N個字符的求解,aab,abc,ab

    ?:任意單個字符

    a?b,表示以a開頭并以b結尾中間有且僅含有一個任意字符的求解,aab,ayb,abc,ab

    []:指定范圍內的任意字符:[abc],[0-9],[a-z],[A-Z]

    [:lower:]所有小寫字母

    [:upper:]所有大寫字母

    [:digit:]所有數字

    如:a[a-z]b,aab,ayb,abc,ab

     求解/etc文件目錄下所有以pass開頭并以數字或字母結尾的字符

    求解所有以字母開頭并以數字結尾的字符:

    ls [a-zA-Z]*[0-9]

    如在:ab、ab~、ab4、4ab、a4b、ayb、abc、x4y、xy3、3xy、aab中求解上述的值:

     [^a-z]表示除了a到z的其他字符,既表示取反:

    [[:alpha:]]代表所有以字符開頭的字符

    [[:punt:]]代表標點符號的集合

     

     

     三、命令行展開的功能

    1、~

    cd ~rehat

    2、{}

    用一個命令實現它:

    mkdir -p {x/{y/a1,z/b1},m/n}

     

     

    實現上述功能mkdir -v{x,m}_{y,z}

    3、$()或``(`波浪形的那反引號):命令引用

     

    從上面的代碼可以看出:

    (1)echo是輸出命令

    (2)date獲取系統日期及時將

    (3)date +%T獲取系統時間

    (4)$()與``的作用是等同的,可以替換

     

     四、如何避免字符展開:

    a*b

    如何創建a*b的文件

    touch a*b是修改a*b的解的時間屬性

     

     

     

    要創建a*b的文件命令用:touch "a*b"即可

     

     

     

     

     

    五、轉義字符:\

    避免一個字符表示通配的意義

    六、如何使用命令別名

    ll=ls -l

    它是由alias定義的,alias是定義別名的命令

     

     

     定義別名:alias cls=clear其意義是將clear定義別名cls,此定義只對當前用戶有效,而且重啟機器后就失效

    撤銷別名:

    使用原來的意義而非別名的意義可以采用\字符

    七、腳本語言

     

    bat,批處理

    shell

    bash

    創建user1,user2,user3用戶

    .sh代表腳本,自然Linux并不以后綴名來識別文件

    其中myuseradd.sh中的內容如下:

    其演示如下:

     

     

     

    posted @ 2013-09-17 11:15 小馬歌 閱讀(335) | 評論 (0)編輯 收藏
     

    Lua-5.2.2

    lua-5.2.2發布已有一段時間了,最近在redhat Linux平臺編譯時報錯。這里給出解決方案,或許對某人會有幫助。

    編譯報錯,如下:

    lua@home> make linux  ... gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX    -c -o lstrlib.o lstrlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX    -c -o ltablib.o ltablib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX    -c -o loadlib.o loadlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX    -c -o linit.o linit.c ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o         lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o     lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o  ranlib liblua.a gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX    -c -o lua.o lua.c gcc -o lua   lua.o liblua.a -lm -Wl,-E -ldl -lreadline  /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `PC' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetflag' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetent' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `UP' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tputs' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgoto' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetnum' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `BC' /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetstr' collect2: ld returned 1 exit status make[1]: *** [lua] Error 1 make[1]: Leaving directory `/home/lua/lua-5.2.2/src' make: *** [linux] Error 2 

    由于lua編譯依賴readline庫,而其依賴ncurses庫,但沒有指定,所以出現“未定義的符合引用”錯誤。需要修改${LUA_DIR}/src/Makefile中linux編譯target,在SYSLIBS變量中追加‘-lncurses’選項即可。修改后,如下:

    1. linux:
    2. $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"
    3.  
    posted @ 2013-09-13 12:33 小馬歌 閱讀(860) | 評論 (0)編輯 收藏
     
         摘要: from:http://zh.wikipedia.org/zh-tw/HTTP%E6%91%98%E8%A6%81%E8%AE%A4%E8%AF%81摘要訪問認證是一種協議規定的Web伺服器用來同網頁瀏覽器進行認證信息協商的方法。它在密碼發出前,先對其應用哈希函數,這相對於HTTP基本認證發送明文而言,更安全。從技術上講,摘要認證是使用隨機數來阻止進行密碼分析的MD5加密哈希函數應用。它使用HTT...  閱讀全文
    posted @ 2013-09-13 12:05 小馬歌 閱讀(674) | 評論 (0)編輯 收藏
     
    from:http://wangkaisino.blog.163.com/blog/static/1870444202011431112323846/


    今年年初由于facebook而火起jemalloc人之,但殊不知,malloc界里面很早就出名了。Jemalloc始人Jason Evans也是在FreeBSD很有名的開發。此人就在2006提高低性能的mallocjemallocJemalloc2007始以FreeBSD準引進來的。件技革新很多是FreeBSD起的。在FreeBSD用廣泛的技術會慢慢入到linux

    目前jemallocfirefox中也在使用。在firefox2中出存碎片問題之后,便在firefox3中使用了jemalloc。在safarichrome中使用的是googletcmalloc

    Jemalloc的技特性

    Jemalloc聚集了malloc的使用程中所驗證的很多技。忽略細節著眼,最出色的部分仍是arenathread cache。(事上,這兩個與tcmalloc的架幾乎相同。Jemalloc only的部分將會在另一次posting繼續

    Arena

    其像malloc集中管理一整塊內存,不如其分成塊來分而治之。此小便稱為arena想象一下,小朋友一圖紙們隨意地點。果可想而知,他肯定相互方而不敢肆意地synchronization),而影響畫圖效率。但是如果老事先在大圖紙分好每人的域,小朋友就可以又快又準地在各自地域上畫圖這樣念就是arena

    Thread cache

    如果是辟小塊內存,使不arena而直接malloc各自的thread cache域。此ideagoogletcmalloc的核心部分,亦在jemalloc中體

    再拿上面的例子,小朋友除了一圖紙外,再各自A4這樣,小朋友在不大面的點,只在自己的A4上心情地即可(no arena seeking)。可以在自己手上的或涂(using thread cache),完全不用人(no synchronization, no locking),迅速有效地

    jemalloc的核心layout。看著復雜,其都是上面明的部分。

    更好的內存管理-jemalloc - Alex - wangkaisino的博客
     

    實際jemalloc的性能呢?

    更好的內存管理-jemalloc - Alex - wangkaisino的博客
     

    最左的就是glibcmalloc,最右的就是jemalloc從圖表上可以看出,jemalloc的性能有glibc倍以上。非常倒性的性能差。因此,使用了jemalloc用程序自然快很多。Jemalloc的就是tcmallocTcmalloc的性能其相差甚微,低jemalloc2.1.04.5%上和tcmalloc1.4版本,而如今到了1.6版本,因此實際這兩應該是不相仲伯的。Jemalloc始人jason evans也意一點,cpu core 8以上的算機上jemalloc效率更高。

    程序的最后的免午餐 – kth分布式技lab      

    2005表了一篇文章免費午餐的時代結束了在之前,程序就算不用費腦子,cpu時鐘速度增加,程序性能自己就上去。但在不同,cpu時鐘趨定,而核地增加。程序需要適應這樣的多程多程的境,開發出適合的程序。文章的大這樣容。

    6年之后的如今,篇文章完全現實了。事cpu時鐘停留在3GHz,而核不上升。在程序要適程多程的分布式算,速度才能上升。但是這樣的程序很

    在在多程的境下,程序員們的最后一道午餐便是tcmallocjemalloc這樣malloc library于使用多程的程序而言,性能提高%

    共享一下我本人的經驗。我本人在kth術研究所分布式技lab中承擔iLock(分布式同步工具,請參googlechubby)。在iLock中用了googletcmalloc果,性能提升了18~22%

    最大的點就是不需要做任何復雜的工作便可得到這樣的效果。不需要代編譯。只需在行二制之前,在cmd窗口中

    $ LD_PRELOAD=tcmalloc所設置的文件夾/libtcmalloc.so

    這樣在之后行的用程序使用tcmallocjemalloc而代替glibcmallocptmalloc)。置此,我便可得到性能20%的提升,這真是送的最后的免午餐。

    如今,在分布式技lab中使用googletcmalloc。原因在于性能上者差不多,但googletcmalloc所提供的程序分析工具非常(heap profiler, cpu profiler)豐富。所以tcmalloc可能更方便一些。

    一定要使用最新的malloc?一定要的!

    posted @ 2013-09-12 12:05 小馬歌 閱讀(1319) | 評論 (0)編輯 收藏
     
    @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

    如何選擇數據交換協議

      選擇什么樣的協議跟我們的應用場景有很大的關系。我們需要考慮我們開發是否方便、接口是否容易發布、是否需要考慮帶寬占用成本、序列化和反序列化的性能、接口協議的擴展性等等。下面我們看下幾個比較常用的交換協議實現。

    協議實現跨語言性能傳輸量RPC
    xml廣泛幾乎所有很大N(可實現)
    json廣泛大量一般一般N(可實現)
    php serializePHPRPC大量一般一般Y
    hessianhessian大量一般Y
    thriftthrift大量Y
    protobufprotobuf大量N(可實現)
    iceice大量Y
    avroApache Avro少量Y
    messagepackmessagepack大量Y

      上面表格列出了一些常用數據交換協議的一些特性的比較。這里并沒有比較好壞,只是想說明不同數據交換協議是有區別的,所以我們需要在我們的應用場景中進行選擇。

     messagepack相關資料

    http://pluto418.iteye.com/blog/1108457
    優勢:
    1.序列化和反序列化所需要的時間少。通過30000條的記錄來測試,msgpack序列化的時間比使用jason來序列化JSON的時間要少三分之一;而反序列化的時間則要少一半。
    2.生成的文件體積小。同樣也是基于30000條記錄來測試,msgpack序列化后生成的二進制文件比用jason序列化出來的時間要少一半。
     
    劣勢:
    1.msgpack對復雜的數據類型(List、Map)支持的不夠,序列化沒有問題,但是反序列化回來就很麻煩,尤其是對于java開發人員。
    2.在上面也提到過,msgpack是通過value的順序來定位屬性的,那么需要在不同的語言中都要維護同樣的模型以及模型中屬性的順序。這個會讓開發人員很困擾。
    3.msgpack無法支持在模型中包含和嵌套其他自定義的模型(如weibo模型中包含comment的列表)。

    @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

    posted on 2011-12-26 10:57 tobyxiong 閱讀(958) 評論(0)  編輯  收藏 所屬分類: java

    posted @ 2013-09-11 12:08 小馬歌 閱讀(334) | 評論 (0)編輯 收藏
     

    Q:如何配置varnish緩存到硬盤?

    A:http://softbeta.iteye.com/blog/1681716

     

    Q:如果debug VCL?

    A:http://stackoverflow.com/questions/12576248/how-to-debug-vcl-in-varnish

     

    Q:怎樣不重啟varnish讓新的vcl生效?

    A:用varnishadm進入管理員頁面:

    Shell代碼  收藏代碼
    1. vcl.load <configname> <filename> //加載一個新的vcl配置,configname:給配置起個名字,filename:配置的路徑  
    2. vcl.use <configname> //使用新的配置  
    3. vcl.discard <configname> // 刪除某個配置  
    4. vcl.list //查看所有加載的配置  

     

    Q:VCL怎么urlrewrite?

    A:https://www.varnish-cache.org/trac/wiki/RedirectsAndRewrites

    PS:regsub函數支持后向引用(backreferences)。

    eg:

    Vcl代碼  收藏代碼
    1. set req.url = regsub(req.url,"/attachment/(.+)(&token=.+)$","/cache/attachment/\1");  

    Q:503 service unavailable?  

    A:503錯誤,這是因為varnish對后端服務器響應header有限制,默認長度是2048,可將其調大一些

    啟動參數代碼  收藏代碼
    1. -p http_resp_hdr_len=8192  
     

     

     

    VCL官方文檔:https://www.varnish-cache.org/docs/3.0/reference/vcl.html

    posted @ 2013-09-10 16:00 小馬歌 閱讀(245) | 評論 (0)編輯 收藏
     
    如何定位死循環或高CPU使用率(linux)
     確定是CPU過高

    使用top觀察是否存在CPU使用率過高現象

    找出線程

    對CPU使用率過高的進程的所有線程進行排序

    ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx
    得到如下結果,其中線程2909使用了7.8%的CPU.
    2907 2913 0.0 ./xxx
    2907 2909 7.8 ./xxx
    也可以通過查看/proc中的信息來確定高CPU線程. 打印了4列,線程ID,線程名,用戶時間和內核時間(排名未分先后)
    awk '{print $1,$2,$14,$15}' /proc/2907/task/*/stat  
     
    找出調用棧

    使用gdb attach nmsagent所在的進程,在gdb中使用 info threads顯示所有線程

    gdb gdb>attach 2907
    gdb>info threads

    得到如下結果,可以發現2909線程的編號是12

    13 Thread 0xad5f2b70 (LWP 2908) 0x004ef0d7 in mq_timedreceive () from /lib/tls/i686/cmov/librt.so.1
    12 Thread 0xad58eb70 (LWP 2909) 0x006e0422 in __kernel_vsyscall ()
    11 Thread 0xad52ab70 (LWP 2910) 0x006e0422 in __kernel_vsyscall ()
    10 Thread 0xad4f8b70 (LWP 2911) 0x006e0422 in __kernel_vsyscall ()
    9 Thread 0xad4c6b70 (LWP 2912) 0x006e0422 in __kernel_vsyscall ()
    8 Thread 0xad3feb70 (LWP 2913) 0x004ef0d7 in mq_timedreceive () from /lib/tls/i686/cmov/librt.so.1
    7 Thread 0xace08b70 (LWP 2914) 0x004ef0d7 in mq_timedreceive () from /lib/tls/i686/cmov/librt.so.1
    6 Thread 0xac607b70 (LWP 2915) 0x006e0422 in __kernel_vsyscall ()
    5 Thread 0xac5e6b70 (LWP 2916) 0x006e0422 in __kernel_vsyscall ()
    4 Thread 0xac361b70 (LWP 2917) 0x006e0422 in __kernel_vsyscall ()
    3 Thread 0xac2fdb70 (LWP 2918) 0x006e0422 in __kernel_vsyscall ()
    2 Thread 0xac1fcb70 (LWP 2919) 0x004ef0d7 in mq_timedreceive () from /lib/tls/i686/cmov/librt.so.1
    * 1 Thread 0xb78496d0 (LWP 2907) 0x006e0422 in __kernel_vsyscall ()

    使用thread 切換線程,使用bt顯示線程棧

    gdb>thread 12 gdb>bt

    得到如下線程棧

    #0 0x006e0422 in __kernel_vsyscall ()
    #1 0x001cca26 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
    #2 0x001fc2dc in usleep () from /lib/tls/i686/cmov/libc.so.6
    #3 0x0806b510 in OspTaskDelay ()
    #4 0x0805c710 in CDispatchTask::NodeMsgSendToSock() ()
    #5 0x0805cc74 in DispatchTaskEntry ()
    #6 0x0806a8e9 in OspTaskTemplateFunc(void*) ()
    #7 0x00d4780e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
    #8 0x002027ee in clone () from /lib/tls/i686/cmov/libc.so.6 
    ps + strace  
     
    得到進程ID 21465 ps -e |grep cmu 4996 ? 00:00:25 cmu_fjga_sp3 21465 pts/5 00:08:10 cmu
    得到線程時間, 其中最占CPU的是 EpollRecvTask 21581
    ps -eL |grep 21465
    21465 21579 pts/5 00:00:00 CamApp
    21465 21580 pts/5 00:00:00 TimerMan Task
    21465 21581 pts/5 00:09:02 EpollRecvTask
    21465 21582 pts/5 00:00:00
    使用 strace -p 21581 得到線程棧  
     
    posted @ 2013-09-04 13:27 小馬歌 閱讀(409) | 評論 (0)編輯 收藏
     
         摘要: from:http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/index.html張 建平, 架構師, iSoftStone Co., Ltd簡介: Servlet 是 Java EE 規范體系的重要組成部分,也是 Java 開發人員必須具備的基礎技能,Servlet 3.0 是 Servlet 規范的最新版本。本文主要介紹了...  閱讀全文
    posted @ 2013-08-22 12:45 小馬歌 閱讀(227) | 評論 (0)編輯 收藏
    僅列出標題
    共95頁: First 上一頁 23 24 25 26 27 28 29 30 31 下一頁 Last 
     
    主站蜘蛛池模板: 日韩免费观看一级毛片看看 | 亚洲熟妇无码八V在线播放| 日韩亚洲精品福利| 91亚洲自偷在线观看国产馆| 亚洲国模精品一区| 日韩精品无码人妻免费视频| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 国产青草视频在线观看免费影院| 一个人免费日韩不卡视频| 亚洲an日韩专区在线| 国产午夜鲁丝片AV无码免费| 国产成人yy免费视频| 免费手机在线看片| 亚洲精品在线观看视频| 免费网站看v片在线香蕉| 日本最新免费网站| 国内成人精品亚洲日本语音| 亚洲av无码专区在线| 亚洲精品视频在线观看免费| 亚洲AV无码日韩AV无码导航| 免费黄色毛片视频| 国产免费一区二区三区| 99久热只有精品视频免费看| 久久aⅴ免费观看| 日本免费高清视频| 天黑黑影院在线观看视频高清免费| 亚洲伊人久久大香线蕉| 亚洲综合区图片小说区| 久久国产亚洲高清观看| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲综合无码AV一区二区| 成人毛片18女人毛片免费96| 久久久受www免费人成| 一级做a爰全过程免费视频毛片| 国产亚洲精品欧洲在线观看| 国产亚洲精品国产福利在线观看| 日本激情猛烈在线看免费观看| 西西人体大胆免费视频| jizz免费观看| 国产亚洲精品AAAA片APP| 亚洲av无码有乱码在线观看|