[PR #756] [MERGED] Optimize defaults #1626

Closed
opened 2026-03-04 02:01:23 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/756
Author: @orozery
Created: 5/6/2018
Status: Merged
Merged: 5/23/2018
Merged by: @ggtakec

Base: masterHead: optimize_defaults


📝 Commits (3)

  • 7a4696f recommend openssl over gnutls for performance
  • 4a72b60 increase default stat cache size from 1000 to 100000
  • 86b0921 enable FUSE read_sync by default

📊 Changes

3 files changed (+16 additions, -2 deletions)

View changed files

📝 README.md (+1 -1)
📝 src/cache.cpp (+1 -1)
📝 src/s3fs.cpp (+14 -0)

📄 Description

Details

This PR includes 3 changes to default s3fs configuration, in order to boost performance:

  1. Change readme to recommened OpenSSL instead of gnuTLS (I tested openssl to be much faster)
  2. Increase the stat cache size from 1000 to 100000. This greatly reduces the number of HEAD requests made by s3fs, as many use-cases list buckets of more than 1000 objects.
    Each entry in the cache takes upto 0.5KB, so a full cache will take upto 0.5KB*100000 = 50MB of memory.
  3. set FUSE sync_read by default (instead of the default async_read).
    This can increase performance as async_read causes the creation of background threads that can create a bottleneck when reaching FUSE's max_background. On the other hand, you don't get the benefit when using async_read since s3fs allows only a single thread to read from a file at a time.
    I verified that this patch increases the performance in the case of multiple threads reading different files at the same time.

@gaul @ggtakec Thanks in advance!


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/756 **Author:** [@orozery](https://github.com/orozery) **Created:** 5/6/2018 **Status:** ✅ Merged **Merged:** 5/23/2018 **Merged by:** [@ggtakec](https://github.com/ggtakec) **Base:** `master` ← **Head:** `optimize_defaults` --- ### 📝 Commits (3) - [`7a4696f`](https://github.com/s3fs-fuse/s3fs-fuse/commit/7a4696fc17b44a60f01f4f470693af2a7c953df6) recommend openssl over gnutls for performance - [`4a72b60`](https://github.com/s3fs-fuse/s3fs-fuse/commit/4a72b60707e00ec8f5f38a7cb8b017182caf482c) increase default stat cache size from 1000 to 100000 - [`86b0921`](https://github.com/s3fs-fuse/s3fs-fuse/commit/86b0921ac40ad0a34cd4202901efc2f4f774777b) enable FUSE read_sync by default ### 📊 Changes **3 files changed** (+16 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -1) 📝 `src/cache.cpp` (+1 -1) 📝 `src/s3fs.cpp` (+14 -0) </details> ### 📄 Description ### Details This PR includes 3 changes to default s3fs configuration, in order to boost performance: 1. Change readme to recommened OpenSSL instead of gnuTLS (I tested openssl to be much faster) 2. Increase the stat cache size from 1000 to 100000. This greatly reduces the number of HEAD requests made by s3fs, as many use-cases list buckets of more than 1000 objects. Each entry in the cache takes upto 0.5KB, so a full cache will take upto 0.5KB*100000 = 50MB of memory. 3. set FUSE sync_read by default (instead of the default async_read). This can increase performance as async_read causes the creation of background threads that can create a bottleneck when reaching FUSE's max_background. On the other hand, you don't get the benefit when using async_read since s3fs allows only a single thread to read from a file at a time. I verified that this patch increases the performance in the case of multiple threads reading different files at the same time. @gaul @ggtakec Thanks in advance! --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:01:23 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#1626
No description provided.