Changeset 687 in code


Ignore:
Timestamp:
Nov 15, 2021, 8:22:43 PM (4 years ago)
Author:
contact
Message:

cmd/soju: bump max number of opened files

The bouncer process may be dealing with many opened FDs. The default
on Linux is 1024. To support bouncers with a lot of users, bump
RLIMIT_NOFILE to the max as advised in [1].

[1]: http://0pointer.net/blog/file-descriptor-limits.html

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/cmd/soju/main.go

    r662 r687  
    5151}
    5252
     53func bumpOpenedFileLimit() error {
     54        var rlimit syscall.Rlimit
     55        if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil {
     56                return fmt.Errorf("failed to get RLIMIT_NOFILE: %v", err)
     57        }
     58        rlimit.Cur = rlimit.Max
     59        if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil {
     60                return fmt.Errorf("failed to set RLIMIT_NOFILE: %v", err)
     61        }
     62        return nil
     63}
     64
    5365func main() {
    5466        var listen []string
     
    7486        if len(cfg.Listen) == 0 {
    7587                cfg.Listen = []string{":6697"}
     88        }
     89
     90        if err := bumpOpenedFileLimit(); err != nil {
     91                log.Printf("failed to bump max number of opened files: %v", err)
    7692        }
    7793
Note: See TracChangeset for help on using the changeset viewer.