Skip to content

ddps-lab/faas-network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 

Repository files navigation

Network in Serverless Cloud Function Service

PUBLICATION

Jeongchul Kim, Jungae Park and Kyungyong Lee, 'Network in Serverless Cloud Function Service', AMGCC 2019, 06/2019 pdf

iPerf3 experiment

iperf3 is widely used as a network micro-benchmark.

EC2(iperf3 server)

  • Start your EC2 instance, Configure EC2 Network and Subnet(same Lambda functions)
  • Configure your Security Group(5201 port - iperf3 server default port)
  • Check your EC2 internal-ip (ex : 172.31.XX.XX)
  • Install iperf3
    • $ sudo yum -y install iperf3
  • Server start
    • $ iperf3 -s
  • If you want to multiple test(concurrent exeuction), executed this code

Lambda(iperf3 client)

  • Check your Lambda VPC Permission AWSLambdaVPCAccessExecutionRole
  • Config your Lambda Network(VPC, Subnet)
  • Using iperf3 command, we can let a client (function run-time) work as either a data uploader (default option) or downloader (with -R oprtion).
  • Lambda code(single test) : iperf3_client
  • Lambda Invocation code(concurrent test) : invoke_iperf3_concurrent_execution
  • Lambda input :
{
   "server_ip": [SERVER_IP],
   "server_port": [SERVER_PORT],
   "test_time": [NUMBER_OF_TEST_TIME],
   "reverse" : [REVERSE_OPTION] 
}

single test

concurrent test

Realistic Scenario using Cloud Storage(S3)

Evaluation with iperf3 provides an easy way to investigate the network bandwidths available for a function run-time, but it does not represent a realistic scenario for data application that may downloading or uploadingof files from a shared block storage(S3). To understand the network performance of FaaS under realistic scenario, we performed download and upload experiments using blocks of data.

lambda s3 download

{
    "object": [S3_BUCKET_NAME],
    "key": [DOWNLOAD_OBJECT_KEY]
}

lambda s3 download

{
    "src_object": [SOURCE_S3_BUCKET_NAME],
    "dst_object": [DESTINATION_S3_BUCKET_NAME],
    "key": [UPLOAD_OBJECT_KEY]
}

Concurrent execution using EC2 Docker

EC2 setup

  • Start your EC2 instance
  • Install Docker
    • $ sudo yum -y install docker
    • $ sudo service docker start
    • $ sudo usermod -aG docker ec2-user
  • Start Network Orchestrator
    1. Copy downloader and uploader to tmp filesystem(/tmp/)
    2. Start orchestrator $ node orchestrator.js
    3. Start driver $ node driver.js [NUMBER_OF_DOWNLOADER_CONTAINER] [NUMBER_OF_FILE]

About

Network in Serverless Cloud Function Service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published