-
-
Notifications
You must be signed in to change notification settings - Fork 510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solved - FATAL: failed to create rotation thread #126
Comments
Hi. Are you using our docker image and the default config or smth else? |
I'am using your build image for building, except its alpine-3.7 instead of 3.6, then take binaries and move into my alpine + config yes, i'am in slack now if we can chat |
|
Cured by vm.overcommit_memory=1 https://www.kernel.org/doc/Documentation/vm/overcommit-accounting P.S. Carefull with memory usage, even if it says 90% free - sphinx tries to allocate alot on start i guess. |
What AWS instance type do you use? How much memory it got? |
AWS t2.small - VPC
And this is beta - uses 144MB while having 0% real load (not production), the production with million rows uses 11.29MiB (docker ps) only under heavy load. (4 cpu 8gb ram ~50% load) Changing workers from thread_pool to threads reduces memory usage to previous levels
|
workers = thread_pool = 4105 pids, workers = threads = ~10 pids too |
Reproducing memory issue workers=threads
Everything started OK Now changing to Immediately fails (while having 1.4Gb free) with indexes taking few megs
|
There is nothing running inside container except searchd and cron to reindex. |
max_children for thread_pool workers set number of workers daemon creates at pool of threads. You should set there values related to your box or comment out that option then daemon auto-calc its value. |
main docker (4k pids, not connected directly by clients)
relay docker (all clients connect via this instance, its actually on same 127.0.0.1 as clients),
|
Pids issue is related to max_children max_children=4096
max_children=1096
But when doing ps aux, i dont see any pids running (doing ps aux neither on host neither in container) |
Docker version 17.06.2-ce, build 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
|
@tomatolog not specifying max_children fixes the memory issue on start and PIDS |
Documentation could be fixed, or maybe there is issue in code - that it tries to create max_children threads on start. |
for workers thread_pool daemon always creates N threads for thread pool. That N value calculated as
that is why in case you explicitly set that option then thread pool got started with 4096 threads (max_children = 4096), ie daemon creates such thread pool for you. That is why I see no issue - just comment out that option or set value that fits your box. You also might create PR with doc fixed for that section https://manticoresearch.gitlab.io/dev/conf_options_reference/searchd_program_configuration_options.html#max-children to make this option clear. |
Created PR Thx, closing |
Are you in the right place?
For general questions, post a question to Forum or Slack
If you open a Github issue, it must be a bug or feature request and you need to provide the below information.
Describe the environment
Amazon Linux 2
Manticore Search version:
2.7.3
OS version:
Linux ip-172-30-0-217.ec2.internal 4.14.62-70.117.amzn2.x86_64 #1 SMP Fri Aug 10 20:14:53 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Describe the problem
When using workers = thread_pool getting this error, with workers = threads everything is fine.
Cant reproduce locally, only on AWS EC2 inside docker.
There are no other containers, no docker settings make any difference (ports, memory, host network)
Description of the issue:
Steps to reproduce:
Messsages from log files:
FATAL: failed to create rotation thread
The text was updated successfully, but these errors were encountered: