CS147 2015-06-15 CS 147: Computer Systems Performance Analysis Examples Using a Distributed File System CS 147: Computer Systems Performance Analysis Examples Using a Distributed File System 1 / 37
Velilind’s Laws of Experimentation CS147 Velilind’s Laws of Experimentation 2015-06-15 ◮ If reproducibility may be a problem, conduct the test only once ◮ If a straight-line fit is required, obtain only two data points Velilind’s Laws of Experimentation ◮ If reproducibility may be a problem, conduct the test only once ◮ If a straight-line fit is required, obtain only two data points 2 / 37
Overview CS147 Overview 2015-06-15 Overview of the Ficus File System Characteristics Performance Issues Measured Data Measurement Methodology Raw Results Data Analysis Overview What Can Be Analyzed? Sample Analysis Overview of the Ficus File System Quality of the Analysis Visual Tests A Bad Example Characteristics Performance Issues Measured Data Measurement Methodology Raw Results Data Analysis What Can Be Analyzed? Sample Analysis Quality of the Analysis Visual Tests A Bad Example 3 / 37
Overview of the Ficus File System What is Ficus? CS147 What is Ficus? 2015-06-15 Overview of the Ficus File System ◮ Distributed, replicated file system ◮ Individual computers store replicas of shared files ◮ Fast local access ◮ Shared data ◮ Designed for robustness in face of network disconnections What is Ficus? ◮ Anyone can write any file, any time ◮ Distributed, replicated file system ◮ Individual computers store replicas of shared files ◮ Fast local access ◮ Shared data ◮ Designed for robustness in face of network disconnections ◮ Anyone can write any file, any time 4 / 37
Overview of the Ficus File System Characteristics Propagation CS147 Propagation 2015-06-15 Overview of the Ficus File System ◮ Any update generates a “best-effort” propagation message ◮ Generated on every write system call Characteristics ◮ Broadcast to all known replicas ◮ Notifies of change, not contents ◮ Receiving site can ignore or can request latest version of file from generating site Propagation ◮ Only when no conflict ◮ Any update generates a “best-effort” propagation message ◮ Generated on every write system call ◮ Broadcast to all known replicas ◮ Notifies of change, not contents ◮ Receiving site can ignore or can request latest version of file from generating site ◮ Only when no conflict 5 / 37
Overview of the Ficus File System Characteristics Reconciliation CS147 Reconciliation 2015-06-15 Overview of the Ficus File System ◮ Correctness guarantees provided by reconciliation process ◮ Runs periodically Characteristics ◮ Operates between pair of replicas ◮ Transfers data in one direction only ◮ Complex distributed algorithm Reconciliation ◮ Proven to terminate correctly ◮ Data is guaranteed to eventually get everywhere ◮ Correctness guarantees provided by reconciliation process ◮ Runs periodically ◮ Operates between pair of replicas ◮ Transfers data in one direction only ◮ Complex distributed algorithm ◮ Proven to terminate correctly ◮ Data is guaranteed to eventually get everywhere 6 / 37
Overview of the Ficus File System Characteristics Garbage Collection CS147 Garbage Collection 2015-06-15 Overview of the Ficus File System ◮ Tricky to get deletion right Characteristics ◮ Example: Joe deletes foo while Mary renames it to bar ◮ Need to globally agree that all names are gone ◮ Requires complex two-phase distributed algorithm Garbage Collection ◮ Tricky to get deletion right ◮ Example: Joe deletes foo while Mary renames it to bar ◮ Need to globally agree that all names are gone ◮ Requires complex two-phase distributed algorithm 7 / 37
Overview of the Ficus File System Performance Issues Ficus Performance CS147 Ficus Performance 2015-06-15 Overview of the Ficus File System ◮ File access (open) performance Performance Issues ◮ Read/write performance ◮ Aspects of deletion ◮ Reconciliation Ficus Performance ◮ Cross-machine interference ◮ File access (open) performance ◮ Read/write performance ◮ Aspects of deletion ◮ Reconciliation ◮ Cross-machine interference 8 / 37
Overview of the Ficus File System Performance Issues Open Performance CS147 Open Performance 2015-06-15 Overview of the Ficus File System ◮ Opening file requires: ◮ Finding file ◮ Checking for conflicts Performance Issues ◮ Local or remote (NFS-like) open ◮ Finding file requires ◮ Local or remote root access ◮ Tracing path, changing machines as needed Open Performance ◮ Other steps are basically one remote procedure call (RPC—one message exchange) each ◮ Opening file requires: ◮ Finding file ◮ Checking for conflicts ◮ Local or remote (NFS-like) open ◮ Finding file requires ◮ Local or remote root access ◮ Tracing path, changing machines as needed ◮ Other steps are basically one remote procedure call (RPC—one message exchange) each 9 / 37
Overview of the Ficus File System Performance Issues Read/Write Performance CS147 Read/Write Performance 2015-06-15 Overview of the Ficus File System ◮ Reading is same as local or NFS operation Performance Issues ◮ Write is like local or NFS, plus: ◮ Propagation (small outgoing packet) ◮ Attribute update (beyond i-node update) Read/Write Performance ◮ Reading is same as local or NFS operation ◮ Write is like local or NFS, plus: ◮ Propagation (small outgoing packet) ◮ Attribute update (beyond i-node update) 10 / 37
Overview of the Ficus File System Performance Issues Deletion CS147 Deletion 2015-06-15 Overview of the Ficus File System ◮ Initially removing a file is reasonably cheap ◮ Mark deleted ◮ Remove from visible namespace Performance Issues ◮ May actually be cheaper than UFS unlink ◮ True cost is garbage collection ◮ How long is space consumed? Deletion ◮ CPU cost? ◮ Still have to do unlink equivalent someday ◮ Initially removing a file is reasonably cheap ◮ Mark deleted ◮ Remove from visible namespace ◮ May actually be cheaper than UFS unlink ◮ True cost is garbage collection ◮ How long is space consumed? ◮ CPU cost? ◮ Still have to do unlink equivalent someday 11 / 37
Overview of the Ficus File System Performance Issues Reconciliation CS147 Reconciliation 2015-06-15 Overview of the Ficus File System ◮ Runs periodically ◮ Mechanism to suppress under high load Performance Issues ◮ Must check every file ◮ If updated, exchange info with remote ◮ May also transfer data ◮ Special handling, but similar, for new/deleted files Reconciliation ◮ Primary cost is checking what’s updated ◮ Runs periodically ◮ Mechanism to suppress under high load ◮ Must check every file ◮ If updated, exchange info with remote ◮ May also transfer data ◮ Special handling, but similar, for new/deleted files ◮ Primary cost is checking what’s updated 12 / 37
Overview of the Ficus File System Performance Issues Cross-Machine Interference CS147 Cross-Machine Interference 2015-06-15 Overview of the Ficus File System ◮ If you store a replica, you pay some costs: Performance Issues ◮ Receiving propagation requests ◮ Running reconciliation as client and server ◮ Servicing remote access requests Cross-Machine Interference ◮ If you store a replica, you pay some costs: ◮ Receiving propagation requests ◮ Running reconciliation as client and server ◮ Servicing remote access requests 13 / 37
Measured Data Measurement Methodology Ficus Measurement Methodology CS147 Ficus Measurement Methodology 2015-06-15 Measured Data ◮ Two classes of measurement ◮ Local replica Measurement Methodology ◮ Interference with remote replicas ◮ Set up test volume ◮ Populate with files Ficus Measurement Methodology ◮ Run several “standard” benchmarks ◮ Destroy volume after test ◮ Two classes of measurement ◮ Local replica ◮ Interference with remote replicas ◮ Set up test volume ◮ Populate with files ◮ Run several “standard” benchmarks ◮ Destroy volume after test 14 / 37
Measured Data Measurement Methodology Benchmarks Used CS147 Benchmarks Used 2015-06-15 Measured Data ◮ Eight benchmarks: cp, find, findgrep, grep, ls, mab, rcp, rm ◮ Most did single operation implied by name Measurement Methodology ◮ cp copied locally within volume ◮ rcp copied from remote machine ◮ findgrep essentially did recursive grep ◮ mab, Modified Andrew Benchmark, did more complex Benchmarks Used compile-edit-debug simulation ◮ Eight benchmarks: cp, find, findgrep, grep, ls, mab, rcp, rm ◮ Most did single operation implied by name ◮ cp copied locally within volume ◮ rcp copied from remote machine ◮ findgrep essentially did recursive grep ◮ mab, Modified Andrew Benchmark, did more complex compile-edit-debug simulation 15 / 37
Measured Data Measurement Methodology Local-Replica Measurements CS147 Local-Replica Measurements 2015-06-15 Measured Data ◮ Set up UFS, remotely-accessed NFS, or Ficus volume Measurement Methodology ◮ Ficus volume varies from 1 to 8 replicas ◮ Run benchmarks on machine that stores local copy (except for NFS tests) ◮ Ignore effect on machines holding other replicas Local-Replica Measurements ◮ Set up UFS, remotely-accessed NFS, or Ficus volume ◮ Ficus volume varies from 1 to 8 replicas ◮ Run benchmarks on machine that stores local copy (except for NFS tests) ◮ Ignore effect on machines holding other replicas 16 / 37
Recommend
More recommend