ablog

不器用で落着きのない技術者のメモ

Python で DynamoDB で負荷をかける

  • DDBGetItem.py
import boto3
import json
import datetime
import threading

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('ycsb8')

def getItem():
    i = 0
    last = datetime.datetime.now()
    while True:
        response = table.get_item(
    	        Key={
	        	    'firstname': 'user1000385178204227360'
        	    }
        )
        i += 1
        mod = i % 1000
        if mod == 0:
            prev = last
            last = datetime.datetime.now()
            delta = last - prev
            print i, ':', delta.total_seconds()

if __name__ == "__main__":
	for n in range(4):
            p = threading.Thread(target=getItem)
	    p.start()
$ sudo pip install boto3
  • 実行する
$ export AWS_DEFAULT_REGION=ap-northeast-1
$ python DDBGetItem.py >> DDBGetItem.log &