Skip to content
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

https client #111

Open
ptrnycz opened this issue Aug 13, 2019 · 3 comments
Open

https client #111

ptrnycz opened this issue Aug 13, 2019 · 3 comments

Comments

@ptrnycz
Copy link

ptrnycz commented Aug 13, 2019

Hello,

I would like to (try) use the dpdk stuff to implement realtime system with high performance networking. I need the following stuff:

  • HTTP(s) client
  • Websocket client

It seems dpdk-ans is this what I am looking for (because of high performance assumption-dpdk and nice looking TCP stack implementation on the top of it), the next step is to port one of existing http(s) client and websocket client.

Can somebody point out which of existing a http(s) clients/websocket clients are easiest to port to this environment?

Maybe there is something existing and well tested?

Anyway, such basic tools like http(s) and websocket stuff would be very usefull as a part of high performance net stuff like dpdk-ans.

Best,
Piotr

@bluenet13
Copy link
Member

You can refer to the example in dpdk-ans/examples directory.
You can refer to dpdk-nginx and dpdk-redis too.

@ptrnycz
Copy link
Author

ptrnycz commented Aug 14, 2019

Thank you for quick response!

I have looked around the examples, it seems I understand a concept. I would like to go into practice now.

So, if anybody could advice appropriate environment configuration.

Task done by system: to receive tcp packets via websocket, process it in RAM, to send response via http request then.

My ONLY priority is: extremely low latency between timestamps when packet goes into one of Ethernet interfaces (via websocket) and goes out via another Ethernet interface (via http request).

Server contains 12 Ethernet interfaces as total-3 cards,4 ports each. I assume that packet processing in RAM is optimal and processing time can't be shorten. The task for dpdk-ans - reduce input-output latency.

A packet body (http body) sizes are 128-256 bytes length,more or less. Memory and processor resources are almost unlimited. Bare metal linux machine, no virtualization layers. Currently I do have 48 phisical cores (96 hyperthreads) 256 GB RAM. If neccessary, can be available more resources. Neither DB processing nor additional resource consuming activities on the server are done.

Does anybody any suggestion in a term of such processing environment setup using dpdk-ans?

ps. I have intensionally NOT mentioned the packet count which gets into system each second. I would like to focus on reducing input/output latency, no compromises. If machine (server) starts to slowing down because of huge packet count, additional server will be added then.

Could you put me on the track how to manage this issue using dpdk-ans.

Maybe I should start from question, have I chosen proper framework?

:)

Best,
Piotr

@rbdm-qnt
Copy link

Thank you for quick response!

I have looked around the examples, it seems I understand a concept. I would like to go into practice now.

So, if anybody could advice appropriate environment configuration.

Task done by system: to receive tcp packets via websocket, process it in RAM, to send response via http request then.

My ONLY priority is: extremely low latency between timestamps when packet goes into one of Ethernet interfaces (via websocket) and goes out via another Ethernet interface (via http request).

Server contains 12 Ethernet interfaces as total-3 cards,4 ports each. I assume that packet processing in RAM is optimal and processing time can't be shorten. The task for dpdk-ans - reduce input-output latency.

A packet body (http body) sizes are 128-256 bytes length,more or less. Memory and processor resources are almost unlimited. Bare metal linux machine, no virtualization layers. Currently I do have 48 phisical cores (96 hyperthreads) 256 GB RAM. If neccessary, can be available more resources. Neither DB processing nor additional resource consuming activities on the server are done.

Does anybody any suggestion in a term of such processing environment setup using dpdk-ans?

ps. I have intensionally NOT mentioned the packet count which gets into system each second. I would like to focus on reducing input/output latency, no compromises. If machine (server) starts to slowing down because of huge packet count, additional server will be added then.

Could you put me on the track how to manage this issue using dpdk-ans.

Maybe I should start from question, have I chosen proper framework?

:)

Best, Piotr

Were you ever able to do that using this framework? Curious to hear an update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants