Einstellung kleinerer Pufferspeicher für sys.stdin?

Ich bin mit memcached mit dem folgenden bash-Befehl Muster:

memcached -vv 2>&1 | tee memkeywatch2010098.log 2>&1 | ~/bin/memtracer.py | tee memkeywatchCounts20100908.log

zu versuchen, die Spur unerreicht bekommt, setzt für Schlüssel-Plattform breit.

Den memtracer Skript ist unten und so funktioniert wie gewünscht, mit ein kleines Problem. Gerade die intermediate Größe der Protokolldatei, memtracer.py nicht anfangen, Eingang bis memkeywatchYMD.melden
etwa 15-18K in der Größe. Gibt es einen besseren Weg zum Lesen von stdin oder vielleicht ein Weg, um schneiden Sie die Puffer-Größe auf unter 1k für schnellere Reaktionszeiten?

#!/usr/bin/python

import sys
from collections import defaultdict

if __name__ == "__main__":


    keys = defaultdict(int)
    GET = 1
    SET = 2
    CLIENT = 1
    SERVER = 2

    #if <
    for line in sys.stdin:
        key = None
        components = line.strip().split(" ")
        #newConn = components[0][1:3]
        direction = CLIENT if components[0].startswith("<") else SERVER

        #if lastConn != newConn:        
        #    lastConn = newConn

        if direction == CLIENT:            
            command = SET if components[1] == "set" else GET
            key = components[2]
            if command == SET:                
                keys[key] -= 1                                                                                    
        elif direction == SERVER:
            command = components[1]
            if command == "sending":
                key = components[3] 
                keys[key] += 1

        if key != None:
            print "%s:%s" % ( key, keys[key], )

InformationsquelleAutor David | 2010-09-08

Schreibe einen Kommentar