Fix compose.mssql.yml performance problem #67
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Performance problem in Cameroon.
Context: Error Encountered
When attempting to allocate a lot of (more than 30) cores to the database server, the following error occurred:
fork: retry: Resource temporarily unavailable
This error is typically caused by the system reaching its process or file descriptor limits, which can occur when the database server operates with a high number of cores or handles many concurrent connections. These limits are set by default in Docker containers and may be insufficient for resource-intensive applications like databases.
It's also important to check host configuration to be sure that those container value will not be blocked by host limits.
To resolve this issue and prevent similar errors in the future, the following adjustments were made:
1. init: true
2. ulimits
-- nproc: 65535: Increases the maximum number of processes a user can create within the container.
-- nofile:
--- Soft limit: 65535 (maximum number of open file descriptors a user process can have). -- Hard limit: 65535 (absolute maximum number of open file descriptors a user process can have).
- Why It's Important: Databases like SQL Server often require higher process and file descriptor limits, especially when handling a high number of concurrent connections or performing resource-intensive operations. Without these adjustments, the database container might encounter errors or performance degradation under heavy workloads.
We may have this kind of problems on postgresql servers as well