• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            學著站在巨人的肩膀上

            金融數學,InformationSearch,Compiler,OS,

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              12 隨筆 :: 0 文章 :: 8 評論 :: 0 Trackbacks

            由于上證所,深交所level1,level2金融數據服務器在上午9:00開始到11:30和下午13:00開始到15:30一共大約5個小時的時間內流量比較大所以被監控服務器的網絡流速算是一個被監控的重要指標。可以通過累加一段時間內各個網卡的上行,下行流量除以這個時間間隔計算出這段時間內的平均網速,我現在的采集頻率是1分鐘采集一次,在實際開盤期間運行過程中得到的網速監控信息用還是比較準確的,都保持在5M/S左右的速度,有時候在平時非服務期看見某臺服務器的內網網卡網速達到5M/S ,果然就是有人在大手筆傳輸。

            獨立的監控腳本是返回一個列表嵌套元組的數據結構,最后再匯總成一個完整的XML數據島,為了調試方便腳本的每一個中間結果都導出到一個臨時文本中。

            運行以下腳本要確定你的linux裝了ethtool工具,在ubuntu2.6.27-7-server,ubuntu22.6.27.19-5-default,suse 2.6.27.19-5-default 測試通過。

            代碼:

             

            1. #coding=utf-8   
            2. #!/usr/bin/python   
            3. import re   
            4. import os   
            5. import time   
            6.   
            7. import utils   
            8. def sortedDictValues3(adict):   
            9.     keys = adict.keys()   
            10.     keys.sort()   
            11.     return map(adict.get, keys)   
            12.   
            13. def run():   
            14.     if utils.isLinux() == False:   
            15.         return [('ifconfig_collect os type error','this is windows')]   
            16.     #not first run   
            17.     if os.path.isfile('./oldifconfig'):   
            18.         fileold = open('./oldifconfig''r')   
            19.         fileold.seek(0)   
            20.         #讀入上次記錄的臨時流量數據文件,和時間戳   
            21.         (oldtime, fileoldcontent) = fileold.read().split('#')   
            22.         fileold.close;   
            23.         netcard = {}   
            24.         tempstr = ''  
            25.         key = ''  
            26.         for strline in fileoldcontent.split('\n'):   
            27.             reobj = re.compile('^lo*.')   
            28.             if reobj.search(strline):   
            29.                 break;   
            30.             reobj = re.compile('^eth*.')   
            31.             if reobj.search(strline):   
            32.                 key = strline.split()[0]   
            33.             tempstr = tempstr + strline + '\n'  
            34.             netcard[key] = tempstr   
            35.         RXold = {}   
            36.         TXold = {}   
            37.         for key,value in netcard.items():   
            38.             tempsplit = value.split('\n')   
            39.             netcard[key] = ''  
            40.             for item in tempsplit:   
            41.                 item = item + '<br>'  
            42.                 netcard[key] = netcard[key] + item   
            43.                 tempcount = 1  
            44.                 for match in re.finditer("(bytes:)(.*?)( \()", item):   
            45.                     if tempcount == 1:   
            46.                         RXold[key] = match.group(2)   
            47.                         tempcount = tempcount + 1  
            48.                     elif tempcount == 2:   
            49.                         TXold[key] = match.group(2)   
            50.                         netcard[key] = netcard[key] + 'net io percent(bytes/s): 0 <br>'  
            51.            
            52.         #記錄當前網卡信息到臨時文件中   
            53.         os.system('ifconfig > ifconfigtemp')   
            54.         file = open('./ifconfigtemp','r');   
            55.         fileold = open('./oldifconfig''w')   
            56.         temptimestr = str(int(time.time()));   
            57.         fileold.write(temptimestr)   
            58.         fileold.write('#')   
            59.         file.seek(0)   
            60.         fileold.write(file.read())   
            61.         fileold.close()   
            62.         returnkeys = []   
            63.         returnvalues = []   
            64.         netcard = {}   
            65.         tempcountcard = 0  
            66.         file.seek(0)   
            67.         key = ''  
            68.         for strline in file.readlines():   
            69.             reobj = re.compile('^lo*.')   
            70.             if reobj.search(strline):   
            71.                 break;   
            72.             reobj = re.compile('^eth*.')   
            73.             if reobj.search(strline):   
            74.                 key = strline.split()[0]   
            75.                 netcard[key] = ''  
            76.             netcard[key] = netcard[key] + strline   
            77.         newnetcard = {}   
            78.         file.seek(0)   
            79.         key = ''  
            80.         for strline in file.readlines():   
            81.             reobj = re.compile('^lo*.')   
            82.             if reobj.search(strline):   
            83.                 break;   
            84.             if re.search("^eth", strline):   
            85.                 templist = strline.split()   
            86.                 key = templist[0]   
            87.                 newnetcard[key] = ''  
            88.                 newnetcard[key] = templist[4] + newnetcard[key] + ' '  
            89.             if re.search("^ *inet ", strline):   
            90.                 templist = strline.split()   
            91.                 newnetcard[key] = templist[1][5:] + ' ' + newnetcard[key] + ' '  
            92.         for key,value in newnetcard.items():   
            93.             #記錄每張網卡是否工作狀態信息到臨時文件   
            94.             os.system('ethtool %s > ethtooltemp'%(key))   
            95.             file = open('./ethtooltemp','r');   
            96.             tempethtooltemplist = file.read().split('\n\t')   
            97.             file.close   
            98.             if re.search("yes", tempethtooltemplist[-1]):   
            99.                 templist = newnetcard[key].split()   
            100.                 newnetcard[key] = templist[0] + ' runing! ' + templist[1]   
            101.             else:   
            102.                 templist = newnetcard[key].split()   
            103.                 if len(templist) > 1:   
            104.                     newnetcard[key] = templist[0] + ' stop! ' + templist[1]   
            105.                 else:   
            106.                     newnetcard[key] =  'stop! ' + templist[0]   
            107.         file.close()   
            108.         RX = {}   
            109.         TX = {}   
            110.         for key,value in netcard.items():   
            111.             tempsplit = value.split('\n')   
            112.             netcard[key] = ''  
            113.             for item in tempsplit:   
            114.                 item = item + '<br>'  
            115.                 netcard[key] = netcard[key] + item   
            116.                 tempcount = 1  
            117.                 for match in re.finditer("(bytes:)(.*?)( \()", item):   
            118.                     if tempcount == 1:   
            119.                         RX[key] = str(int(match.group(2)) - int(RXold[key]))   
            120.                         tempcount = tempcount + 1  
            121.                     elif tempcount == 2:   
            122.                         TX[key] = str(int(match.group(2)) - int(TXold[key]))   
            123.                         divtime = float(int(time.time()) - int(oldtime))   
            124.                         if divtime == 0:   
            125.                             rate = (float(TX[key]) + float(RX[key]))   
            126.                         else:   
            127.                             rate = (float(TX[key]) + float(RX[key]))/(divtime)   
            128.                         if rate == 0:   
            129.                             newnetcard[key] = '0' + ' ' + newnetcard[key]   
            130.                         else:   
            131.                             newnetcard[key] = '%.2f'%rate + ' ' + newnetcard[key]   
            132.         return zip(['order'], ['48']) + newnetcard.items();   
            133.     else:   
            134.         os.system('ifconfig > ifconfigtemp')   
            135.         file = open('./ifconfigtemp','r');   
            136.         fileold = open('./oldifconfig''w')   
            137.         temptimestr = str(int(time.time()));   
            138.         fileold.write(temptimestr)   
            139.         fileold.write('#')   
            140.         file.seek(0)   
            141.         fileold.write(file.read())   
            142.         fileold.close()   
            143.   
            144.         netcard = {}   
            145.         file.seek(0)   
            146.         key = ''  
            147.         for strline in file.readlines():   
            148.             reobj = re.compile('^lo*.')   
            149.             if reobj.search(strline):   
            150.                 break;   
            151.             reobj = re.compile('^eth*.')   
            152.             if reobj.search(strline):   
            153.                 key = strline.split()[0]   
            154.                 netcard[key] = ''  
            155.             netcard[key] = netcard[key] + strline   
            156.         RX = {}   
            157.         TX = {}   
            158.            
            159.         key = ''  
            160.         newnetcard = {}   
            161.         file.seek(0)   
            162.         for strline in file.readlines():   
            163.             reobj = re.compile('^lo*.')   
            164.             if reobj.search(strline):   
            165.                 break;   
            166.             if re.search("^eth", strline):   
            167.                 templist = strline.split()   
            168.                 key = templist[0]   
            169.                 newnetcard[key] = templist[4] + ' '  
            170.             if re.search("^ *inet ", strline):   
            171.                 templist = strline.split()   
            172.                 newnetcard[key] = newnetcard[key] + templist[1][5:] + ' '  
            173.         for key,value in newnetcard.items():   
            174.             os.system('ethtool %s > ethtooltemp'%(key))   
            175.             file = open('./ethtooltemp','r');   
            176.             tempethtooltemplist = file.read().split('\n')   
            177.             file.close   
            178.             if re.search("yes", tempethtooltemplist[-1]):   
            179.                 newnetcard[key] = newnetcard[key] + 'runing!'  
            180.             else:   
            181.                 newnetcard[key] = newnetcard[key] + 'stop!'  
            182.         file.close()   
            183.         for key,value in netcard.items():   
            184.             tempsplit = value.split('\n')   
            185.             netcard[key] = ''  
            186.             for item in tempsplit:   
            187.                 item = item + '<br>'  
            188.                 #print item   
            189.                 netcard[key] = netcard[key] + item   
            190.                 tempcount = 1  
            191.                 for match in re.finditer("(bytes:)(.*?)( \()", item):   
            192.                     if tempcount == 1:   
            193.                         RX[key] = match.group(2)   
            194.                         tempcount = tempcount + 1  
            195.                     elif tempcount == 2:   
            196.                         TX[key] = match.group(2)   
            197.                         netcard[key] = netcard[key] + 'net io percent(bytes/s): 0 <br>'  
            198.                         newnetcard[key] = newnetcard[key] + ' ' + '0 <br>'  
            199.         return zip(['order'], ['48']) + newnetcard.items();   
            200. if __name__ == '__main__':   
            201.     print run()  

             

            使用例子:

            1 

            每一個列表元素元組里面第二個元素第一個字段為網速 Bytes/S,例如eth1網卡的網速就是3.3KB/s,eth0網速是2.9KB/s,今天是周六這個流量很正常

            posted on 2010-03-15 19:22 學者站在巨人的肩膀上 閱讀(582) 評論(0)  編輯 收藏 引用
            精品欧美一区二区三区久久久| 一本久道久久综合狠狠爱| 久久久久久精品免费免费自慰| 久久精品无码av| 久久精品成人免费观看97| 久久精品视频网| 91精品国产91久久久久久青草| 久久精品国产网红主播| 国产精品对白刺激久久久| 99久久精品国产免看国产一区| 99久久久国产精品免费无卡顿 | 亚洲国产精品成人AV无码久久综合影院| 久久久精品人妻一区二区三区四| 久久精品蜜芽亚洲国产AV| 精品国产VA久久久久久久冰| 99999久久久久久亚洲| 大蕉久久伊人中文字幕| 久久精品无码av| 国内精品久久久久久久久电影网| 亚洲国产精品无码久久一线| 久久精品国产第一区二区三区| 久久综合综合久久狠狠狠97色88 | 91精品免费久久久久久久久| 热99re久久国超精品首页| 久久久精品波多野结衣| 99精品国产综合久久久久五月天| 欧美亚洲色综久久精品国产| 亚洲国产天堂久久综合网站| 一级做a爰片久久毛片看看| 色欲av伊人久久大香线蕉影院| 曰曰摸天天摸人人看久久久| 久久婷婷五月综合97色直播| 亚洲AV成人无码久久精品老人| 日韩精品久久久久久| 久久综合九色欧美综合狠狠| 精品无码久久久久久午夜| 久久久久亚洲AV无码专区桃色 | 久久久久久久亚洲精品| 亚洲愉拍99热成人精品热久久| 国产99久久九九精品无码| 亚洲精品美女久久久久99|