Improve analysis of S3 packet traces.
[bluesky.git] / cloudbench / cloudtest.py
index 0755688..31c188a 100755 (executable)
@@ -24,7 +24,7 @@ class S3TestConnection:
         k.set_contents_from_string(buf)
         print "%s: %f" % (name, time.time() - start_time)
 
-    def get_object(self, name, size):
+    def get_object(self, name):
         k = Key(self.bucket, name)
         start_time = time.time()
         buf = k.get_contents_as_string()
@@ -41,7 +41,7 @@ class AzureTestConnection:
                                {'x-ms-blob-type': 'BlockBlob'})
         print "%s: %f" % (name, time.time() - start_time)
 
-    def get_object(self, name, size):
+    def get_object(self, name):
         start_time = time.time()
         self.conn.make_request('/benchmark/' + name, 'GET')
         print "%s: %f" % (name, time.time() - start_time)
@@ -56,7 +56,7 @@ def run_test():
     c = S3TestConnection()
     for repeat in range(4):
         for size in SIZES:
-            c.get_object('file-%d-%d' % (size, repeat), size)
+            c.get_object('file-%d-%d' % (size, repeat))
 
     print "==== AZURE ===="
     c = AzureTestConnection()
@@ -67,7 +67,20 @@ def run_test():
     c = AzureTestConnection()
     for repeat in range(4):
         for size in SIZES:
-            c.get_object('file-%d-%d' % (size, repeat), size)
+            c.get_object('file-%d-%d' % (size, repeat))
 
 if __name__ == '__main__':
-    run_test()
+    #run_test()
+    SIZES = [4096, 32 << 10, 256 << 10, 1 << 20, 4 << 20]
+    PRIME = (1 << 20) + (1 << 10)
+    c = AzureTestConnection()
+    for size in SIZES:
+        c.put_object('file-%d-%d' % (size, 0), size)
+    c.put_object('file-%d-%d' % (PRIME, 0), PRIME)
+
+    for size in SIZES:
+        for n in range(50):
+            c = AzureTestConnection()
+            c.get_object('file-%d-%d' % (PRIME, 0))
+            time.sleep(2.0)
+            c.get_object('file-%d-%d' % (size, 0))