DOC PREVIEW
UCSD CSE 120 - File System Performance

This preview shows page 1-2-3-4-5-6 out of 19 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Lecture 14:Lecture 14:File System PerformanceFile System PerformanceCSE 120: Principles of Operating SystemsGeoff VoelkerLab 2 due MidnightCSE 120 – Lecture 142OverviewOverview Last time we discussed how file systems work◆ Files, directories, inodes, data blocks, etc.◆ Didn’t focus much on where the data was actually placed Now we’ll focus on how to make them perform◆ By being smart about how we lay out the data on disk◆ Or, even better, avoiding the disk altogether Three (somewhat dated, but illustrative) case studies:◆ BSD Unix Fast File System (FFS)◆ Log-structured File System (LFS)◆ Redundant Array of Inexpensive DisksCSE 120 – Lecture 143Fast File SystemFast File System The original Unix file system had a simple,straightforward implementation◆ Easy to implement and understand◆ But very poor utilization of disk bandwidth (lots of seeking) BSD Unix folks did a redesign (mid 80s) that theycalled the Fast File System (FFS)◆ Improved disk utilization, decreased response time◆ McKusick, Joy, Leffler, and Fabry Now the FS from which all other Unix FS’s have beencompared Good example of being device-aware for performanceCSE 120 – Lecture 144Data and Data and Inode Inode PlacementPlacementOriginal Unix FS had two placement problems:1. Data blocks allocated randomly in aging file systems◆ Blocks for the same file allocated sequentially when FS is new◆ As FS “ages” and fills, need to allocate into blocks freed upwhen other files are deleted◆ Problem: Deleted files essentially randomly placed◆ So, blocks for new files become scattered across the disk2. Inodes allocated far from blocks◆ All inodes at beginning of disk, far from data◆ Traversing file name paths, manipulating files, directoriesrequires going back and forth from inodes to data blocksBoth of these problems generate many long seeksCSE 120 – Lecture 145Cylinder GroupsCylinder Groups BSD FFS addressed these problems using the notionof a cylinder group◆ Disk partitioned into groups of cylinders◆ Data blocks in same file allocated in same cylinder◆ Files in same directory allocated in same cylinder◆ Inodes for files allocated in same cylinder as file data blocks Free space requirement◆ To be able to allocate according to cylinder groups, the diskmust have free space scattered across cylinders◆ 10% of the disk is reserved just for this purpose» Only used by root – why it is possible for “df” to report >100%CSE 120 – Lecture 146Other ProblemsOther Problems Small blocks (1K) caused two problems:◆ Low bandwidth utilization◆ Small max file size (function of block size) Fix using a larger block (4K)◆ Very large files, only need two levels of indirection for 2^32◆ Problem: internal fragmentation◆ Fix: Introduce “fragments” (1K pieces of a block) Problem: Media failures◆ Replicate master block (superblock) Problem: Reduced seeks, but even one is expensive◆ What if we can avoid going to disk at all?CSE 120 – Lecture 147File Buffer CacheFile Buffer Cache Applications exhibit significant locality for reading andwriting files Idea: Cache file blocks in memory to capture locality◆ This is called the file buffer cache◆ Cache is system wide, used and shared by all processes◆ Reading from the cache makes a disk perform like memory◆ Even a 4 MB cache can be very effective Issues◆ The file buffer cache competes with VM (tradeoff here)◆ Like VM, it has limited size◆ Need replacement algorithms again (LRU usually used)CSE 120 – Lecture 148Caching WritesCaching Writes Applications assume writes make it to disk◆ As a result, writes are often slow even with caching Several ways to compensate for this◆ “write-behind”» Maintain a queue of uncommitted blocks» Periodically flush the queue to disk» Unreliable◆ Battery backed-up RAM (NVRAM)» As with write-behind, but maintain queue in NVRAM» Expensive◆ Log-structured file system» Always write next block after last block written» ComplicatedCSE 120 – Lecture 149Read AheadRead Ahead Many file systems implement “read ahead”◆ FS predicts that the process will request next block◆ FS goes ahead and requests it from the disk. . .◆ while the process is computing on previous block!◆ When the process requests block, it will be in cache◆ Compliments the disk cache, which also is doing read ahead For sequentially accessed files can be a big win◆ Unless blocks for the file are scattered across the disk◆ File systems try to prevent that, though (during allocation) Unfortunately, this doesn’t do anything for writes◆ What if we could make write-behind sequential as well?CSE 120 – Lecture 1410Log-structured File SystemLog-structured File System The Log-structured File System (LFS) was designed inresponse to two trends in workload and technology:1. Disk bandwidth scaling significantly (40% a year)» Latency is not2. Large main memories in machines» Large buffer caches» Absorb large fraction of read requests» Can use for writes as well» Coalesce small writes into large writes LFS takes advantage of both of these to increase FSperformance◆ Rosenblum and Ousterhout (Berkeley, ’91)CSE 120 – Lecture 1411FFS ProblemsFFS Problems LFS also addresses some problems with FFS◆ Placement is improved, but still have many small seeks» Possibly related files are physically separated» Inodes separated from files (small seeks)» Directory entries separate from inodes◆ Metadata requires synchronous writes» With small files, most writes are to metadata (synchronous)» Synchronous writes very slowCSE 120 – Lecture 1412LFS ApproachLFS Approach Treat the disk as a single log for appending◆ Collect writes in disk cache, write out entire collection in onelarge disk request» Leverages disk bandwidth» No seeks (assuming head is at end of log)◆ All info written to disk is appended to log» Data blocks, attributes, inodes, directories, etc. Simple, eh?◆ Alas, only in abstractCSE 120 – Lecture 1413LFS ChallengesLFS Challenges LFS has two challenges it must address for it to bepractical1. Locating data written to the log» FFS places files in a location, LFS writes data “at the end”2. Managing free space on the disk» Disk is finite, so log is finite, cannot always append» Need to recover deleted blocks in old parts of logCSE 120 – Lecture 1414LFS: Locating DataLFS: Locating Data FFS


View Full Document

UCSD CSE 120 - File System Performance

Documents in this Course
Threads

Threads

14 pages

Deadlocks

Deadlocks

19 pages

Processes

Processes

14 pages

Paging

Paging

13 pages

Processes

Processes

18 pages

Threads

Threads

29 pages

Security

Security

16 pages

Paging

Paging

13 pages

Processes

Processes

32 pages

Lecture 2

Lecture 2

13 pages

Paging

Paging

8 pages

Threads

Threads

14 pages

Paging

Paging

13 pages

Paging

Paging

26 pages

Paging

Paging

13 pages

Lecture

Lecture

13 pages

Processes

Processes

14 pages

Paging

Paging

13 pages

Security

Security

17 pages

Threads

Threads

15 pages

Processes

Processes

34 pages

Structure

Structure

10 pages

Lecture 3

Lecture 3

13 pages

Lecture 1

Lecture 1

28 pages

Threads

Threads

15 pages

Paging

Paging

30 pages

Load more
Download File System Performance
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view File System Performance and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view File System Performance 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?