streaming call , I find at least one request 3 times flush on streaming server , end header flush + end data flush + end status flush ,how can reduce ? data just less 100k,not separate data frame
On Friday, January 20, 2017 at 1:33:28 AM UTC+8, [email protected] wrote: > > This looks like an issue that has been seen in grpc-go earlier. What types > of calls are these - unary? or streaming? > > Indeed for unary calls, each call is currently flushing writes after > sending headers and status for each call. The message portions of unary and > streaming calls (split up into separate http2 data frames if it's large) > both have some but only small amounts of batching of syscall.Writes. > > There has been some work towards reducing this but I think the issue is > probably somewhat expected for latest update. (There's one experimental > solution to reducing unary call flushes in > https://github.com/grpc/grpc-go/pull/973) > > On Thursday, January 19, 2017 at 1:25:36 AM UTC-8, Zeymo Wang wrote: >> >> I fork grpc-go uses as gateway just enioy h2c benifit (also remove pb >> IDL feature),which I implement 0-RTT TLS( cgo invoke libsodium) repalce the >> standard TLS and handle request just do http request to upstream; In >> benchmark of bidirectional streaming rpc ,high cpu usage under not much >> heavy load (maxConcurrencyStream = 100 or 1000 ,the same), according to "go >> tool pprof ", I find syscall.wirte consume much cpu and RT ( maybe cgo >> performance?). At least 3 time call system.wrtie (flush) will cause this >> problem (header + data + status)?Is orignal grpc have this issue?how to >> resolve or reduce invoke syscall.write?or waiting go add syscall.writev? >> >> >> <https://lh3.googleusercontent.com/-0TCAcilsguw/WICDnBBHKBI/AAAAAAAAB_k/2OtJVaBq9ykgXPKboM43S8PWR1OXT59oQCEw/s1600/perf.jpg> >> >> >> <https://lh3.googleusercontent.com/-2HXrQl6GgH0/WICENZODGQI/AAAAAAAAB_o/VUTPcgod4wQsI8Csoh7rVSBwcEe-n3yqQCLcB/s1600/strace.jpg> >> >> >> >> >> <https://lh3.googleusercontent.com/-IV3cZmIFYso/WICD8niuwnI/AAAAAAAAB_g/liXcah0inB4RQJxujk57SYxfzmjaVCvgQCEw/s1600/pprof.png> >> >> >> >> -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/abaf51ab-fddb-464a-801b-1c4758f4b166%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
