• <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>

            學(xué)著站在巨人的肩膀上

            金融數(shù)學(xué),InformationSearch,Compiler,OS,

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              12 隨筆 :: 0 文章 :: 8 評(píng)論 :: 0 Trackbacks

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

            獨(dú)立的監(jiān)控腳本是返回一個(gè)列表嵌套元組的數(shù)據(jù)結(jié)構(gòu),最后再匯總成一個(gè)完整的XML數(shù)據(jù)島,為了調(diào)試方便腳本的每一個(gè)中間結(jié)果都導(dǎo)出到一個(gè)臨時(shí)文本中。

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

            代碼:

             

            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.         #讀入上次記錄的臨時(shí)流量數(shù)據(jù)文件,和時(shí)間戳   
            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.         #記錄當(dāng)前網(wǎng)卡信息到臨時(shí)文件中   
            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.             #記錄每張網(wǎng)卡是否工作狀態(tài)信息到臨時(shí)文件   
            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 

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

            posted on 2010-03-15 19:22 學(xué)者站在巨人的肩膀上 閱讀(583) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久综合九色综合欧美狠狠| 国内精品伊人久久久久网站| 伊人色综合九久久天天蜜桃| 亚洲日韩欧美一区久久久久我| 97精品国产97久久久久久免费 | 色综合久久久久无码专区| 狠狠色噜噜色狠狠狠综合久久| 国产精品久久久久天天影视| 欧美精品福利视频一区二区三区久久久精品| 亚洲日韩欧美一区久久久久我 | 国产精品VIDEOSSEX久久发布| 亚洲国产成人久久综合野外| 国产亚洲综合久久系列| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 亚洲国产成人久久综合碰| 久久大香香蕉国产| 久久亚洲精品国产精品婷婷| 久久国产精品久久久| 色婷婷综合久久久久中文| 合区精品久久久中文字幕一区| 国产精品久久久久久久久免费| 久久人妻AV中文字幕| 久久久久久亚洲精品不卡| 久久久久中文字幕| 精品久久久久久成人AV| 亚洲熟妇无码另类久久久| 欧美精品九九99久久在观看| 国产免费久久精品丫丫| 国产成人久久激情91| 99久久成人国产精品免费| 奇米综合四色77777久久| 久久99热这里只有精品国产| 18禁黄久久久AAA片| 一级a性色生活片久久无少妇一级婬片免费放 | 久久播电影网| 精品99久久aaa一级毛片| segui久久国产精品| 国产精品热久久毛片| 久久久精品波多野结衣| 久久综合伊人77777| 尹人香蕉久久99天天拍|