Junior — Middle
What measures can be taken to prevent exceeding the open file descriptor limit in the system?
sobes.tech AI
Answer from AI
To prevent exceeding the limit on open file descriptors in the system, the following measures can be taken:
- Close files after use. In Go, this can be done using
defer file.Close()immediately after opening the file. - Use a descriptor pool. If the application opens many files, it is advisable to limit the number of simultaneously open files and reuse descriptors.
- Check and increase OS limits. In Linux, you can check the current limit with the command
ulimit -nand increase it if necessary. - Optimize file handling logic. For example, read files in batches rather than all at once.
Example in Go:
file, err := os.Open("file.txt")
if err != nil {
// handle error
}
defer file.Close()
// work with the file
Thus, it is always important to close files and control the number of open descriptors simultaneously.