-
Notifications
You must be signed in to change notification settings - Fork 47
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
Gateway stopped at 3017 bdevs, gw restarts but returns an empty config #309
Comments
Tried 0.0.5, and hit the same issue - looks like a ulimit issue for the pod - but looking at the fd's for the nvmt pid, there are 6500 socket entries...maybe sockets aren't getting closed? |
@pcuzner the OMAP version key error was fixed. This was a problem whenever we had more than 1024 entries in the OMAP file. The code only read the file once but Ceph limits the number of entries returned to 1024. The result was we didn't read some of the entries. When one of the missing entries was the omap_version one you get an exception as this key is referred to explicitly in the code. The current code gets the OMAP values in a loop. So we'll read the entire file. |
@pcuzner in which process did you see the 6500 sockets? You write "nvmt pid". It's not clear to me which process is that. |
I'm running a loop creating 4096 bdevs. While it's running I can see that the SPDK process opens more and more files. Looking at the /proc FS I see a lot of entries like:
so, it seems that the file descriptors are kept open after the the map was deleted |
Apologies for the cryptic nvmet...the pid started with /usr/local/bin/nvmf_tgt holds the sockets and a lot of them correspond to the number of librbd clients that get created as per the bdevs_per_cluster setting. |
Yes, this is the SPDK. Asked Jonas about it and he said this is how the SPDK works. Only when you exit the application all these files get freed. |
@pcuzner I see that in your environment, the limit on open files is 10,240. In our environment the limit is 20,480, which is set in docker-compose.yaml. Did you do anything to reduce the limit? |
@caroav the limit on the max number of open files was set to 20,480 by Ernesto. He's done it to increase the limit we had back then. But, when I remove the limit added by Ernesto and just use the default values I get a limit of 1,048,576 which is much bigger. |
We build the nvmeof container with a limit of 20,480 open files. But, looking at the source of cephadm I see:
so, it seems that cephadm overrides the value we use and decrease it to 10,240. |
@pcuzner I used a modified version of your script to create 2048 bdevs, 2048 namespaces, 64 subsystems and 64 listeners. After doing all that I see that SPDK has 3877 open files. As far as I could see the increase in the SPDK open files count was linear to the creation of bdevs. Each new bdev created added about 1.78 open files. Assuming this ratio keeps, getting to 4096 bdevs should give us about 7500 open files. Which is way under the limit. Even the cephadm limit which is half of the limit we use. I also ran get_subsystems and it was OK. As I wrote above, the OMAP version key issue was resolved in PR #272. So, I'm not sure if we still have a problem here. Can you repeat your test using the latest code? That is, the code committed to git. |
@caroav maybe it's time to update the binaries in the repository? We got several issues which were already solved in our version of the code. |
@pcuzner I couldn't reproduce the issue and in the meantime there was a major change to the CLI code. So, I close this for now. Please re-open in case you see it again with the current code. |
My goal was to scale to 128 subsystems, 4096 namespaces - but during the configuration of the bdevs for the 95th namespace, the gateway stopped (without a crash), with the following;
The gw pod has the following ulimits set
After a "systemctl reset-failed" and "systemd restart" for the gateway, the log shows
However, looking at the object and key it looks OK
At this point the API is up, but returning nothing
But I can see all the keys present on the omap object..
The text was updated successfully, but these errors were encountered: