-
Notifications
You must be signed in to change notification settings - Fork 4
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
Add per-cpu fanout mode #35
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
see #33 By assigning packets on per-cpu basis we ensure kernel's skb structure (incl locks) gets shared across fewer cores than other fanout strategies. This should result in higher throughput/lower resource usage. As per `man 8 ethtool`, all the valid `-N -U --config-nfc --config-ntuple` options make sure flows get always scheduled to the same core so by using PACKET_FANOUT_CPU we ensure that packets from the same flow get assigned to the same socket. Let's give it a try
974bc2e
to
ccbebe2
Compare
This helped quite a lot, see https://github.com/kentik/operations/issues/8982#issuecomment-2020149647 - can we please merge this? |
Thanks @pikrzysztof! |
ghost
pushed a commit
that referenced
this pull request
Mar 28, 2024
* Add per-cpu fanout mode see #33 By assigning packets on per-cpu basis we ensure kernel's skb structure (incl locks) gets shared across fewer cores than other fanout strategies. This should result in higher throughput/lower resource usage. As per `man 8 ethtool`, all the valid `-N -U --config-nfc --config-ntuple` options make sure flows get always scheduled to the same core so by using PACKET_FANOUT_CPU we ensure that packets from the same flow get assigned to the same socket. Let's give it a try * fix indentation --------- Co-authored-by: Will <[email protected]>
For the interested shows cputime spent in interrupts divided by rx data. Flattening in the last two days is the effect of per-cpu fanout mode. We're observing:
|
This pull request was closed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
see #33
By assigning packets on per-cpu basis we ensure kernel's skb structure (incl locks) gets shared across fewer cores than other fanout strategies. This should result in higher throughput/lower resource usage.
As per
man 8 ethtool
, all the valid-N -U --config-nfc --config-ntuple
options make sure flows get always scheduled to the same core so by using PACKET_FANOUT_CPU we ensure that packets from the same flow get assigned to the same socket.Let's give it a try!