diff options
author | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-06-27 17:16:05 +0300 |
---|---|---|
committer | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-06-27 17:16:05 +0300 |
commit | 244fc68b04485d0d740b3e0befb4e52d6c9caf1f (patch) | |
tree | 04b6e302408ccc85a331d619b37ac997e955a9ec /library/cpp | |
parent | 9b125f6128d9d867117ec970348d2e8062a22cc5 (diff) | |
download | ydb-244fc68b04485d0d740b3e0befb4e52d6c9caf1f.tar.gz |
intermediate changes
ref:4321fe5a69e3b93ba446bc212e9b4668fff799c8
Diffstat (limited to 'library/cpp')
4 files changed, 18 insertions, 8 deletions
diff --git a/library/cpp/actors/interconnect/interconnect_counters.cpp b/library/cpp/actors/interconnect/interconnect_counters.cpp index 5d0b31737c..408f86cae9 100644 --- a/library/cpp/actors/interconnect/interconnect_counters.cpp +++ b/library/cpp/actors/interconnect/interconnect_counters.cpp @@ -165,8 +165,9 @@ namespace { ++*SpuriousWriteWakeups; } - void IncSendSyscalls() override { + void IncSendSyscalls(ui64 ns) override { ++*SendSyscalls; + *SendSyscallsNs += ns; } void IncInflyLimitReach() override { @@ -197,8 +198,9 @@ namespace { ++*ch.IncomingEvents; } - void IncRecvSyscalls() override { + void IncRecvSyscalls(ui64 ns) override { ++*RecvSyscalls; + *RecvSyscallsNs += ns; } void AddTotalBytesRead(ui64 value) override { @@ -284,7 +286,9 @@ namespace { if (updateGlobal) { OutputBuffersTotalSize = Counters->GetCounter("OutputBuffersTotalSize"); SendSyscalls = Counters->GetCounter("SendSyscalls", true); + SendSyscallsNs = Counters->GetCounter("SendSyscallsNs", true); RecvSyscalls = Counters->GetCounter("RecvSyscalls", true); + RecvSyscallsNs = Counters->GetCounter("RecvSyscallsNs", true); SpuriousReadWakeups = Counters->GetCounter("SpuriousReadWakeups", true); UsefulReadWakeups = Counters->GetCounter("UsefulReadWakeups", true); SpuriousWriteWakeups = Counters->GetCounter("SpuriousWriteWakeups", true); @@ -319,8 +323,10 @@ namespace { NMonitoring::TDynamicCounters::TCounterPtr QueueUtilization; NMonitoring::TDynamicCounters::TCounterPtr SubscribersCount; NMonitoring::TDynamicCounters::TCounterPtr SendSyscalls; + NMonitoring::TDynamicCounters::TCounterPtr SendSyscallsNs; NMonitoring::TDynamicCounters::TCounterPtr ClockSkewMicrosec; NMonitoring::TDynamicCounters::TCounterPtr RecvSyscalls; + NMonitoring::TDynamicCounters::TCounterPtr RecvSyscallsNs; NMonitoring::TDynamicCounters::TCounterPtr UsefulReadWakeups; NMonitoring::TDynamicCounters::TCounterPtr SpuriousReadWakeups; NMonitoring::TDynamicCounters::TCounterPtr UsefulWriteWakeups; @@ -475,7 +481,7 @@ namespace { SpuriousWriteWakeups_->Inc(); } - void IncSendSyscalls() override { + void IncSendSyscalls(ui64 /*ns*/) override { SendSyscalls_->Inc(); } @@ -507,7 +513,7 @@ namespace { ch.IncomingEvents->Inc(); } - void IncRecvSyscalls() override { + void IncRecvSyscalls(ui64 /*ns*/) override { RecvSyscalls_->Inc(); } diff --git a/library/cpp/actors/interconnect/interconnect_counters.h b/library/cpp/actors/interconnect/interconnect_counters.h index b5a63b4551..205ccf35b1 100644 --- a/library/cpp/actors/interconnect/interconnect_counters.h +++ b/library/cpp/actors/interconnect/interconnect_counters.h @@ -30,7 +30,7 @@ public: virtual void IncDisconnections() = 0; virtual void IncUsefulWriteWakeups() = 0; virtual void IncSpuriousWriteWakeups() = 0; - virtual void IncSendSyscalls() = 0; + virtual void IncSendSyscalls(ui64 ns) = 0; virtual void IncInflyLimitReach() = 0; virtual void IncDisconnectByReason(const TString& s) = 0; virtual void IncUsefulReadWakeups() = 0; @@ -38,7 +38,7 @@ public: virtual void SetPeerInfo(const TString& name, const TString& dataCenterId) = 0; virtual void AddInputChannelsIncomingTraffic(ui16 channel, ui64 incomingTraffic) = 0; virtual void IncInputChannelsIncomingEvents(ui16 channel) = 0; - virtual void IncRecvSyscalls() = 0; + virtual void IncRecvSyscalls(ui64 ns) = 0; virtual void AddTotalBytesRead(ui64 value) = 0; virtual void UpdatePingTimeHistogram(ui64 value) = 0; virtual void UpdateOutputChannelTraffic(ui16 channel, ui64 value) = 0; diff --git a/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp b/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp index cbb2d16e46..6c80ddd295 100644 --- a/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp +++ b/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp @@ -384,12 +384,14 @@ namespace NActors { TString err; LWPROBE_IF_TOO_LONG(SlowICReadFromSocket, ms) { do { + const ui64 begin = GetCycleCountFast(); #ifndef _win_ recvres = iovcnt == 1 ? Socket->Recv(iovec->iov_base, iovec->iov_len, &err) : Socket->ReadV(iovec, iovcnt); #else recvres = Socket->Recv(iovec[0].iov_base, iovec[0].iov_len, &err); #endif - Metrics->IncRecvSyscalls(); + const ui64 end = GetCycleCountFast(); + Metrics->IncRecvSyscalls((end - begin) * 1'000'000 / GetCyclesPerMillisecond()); } while (recvres == -EINTR); } diff --git a/library/cpp/actors/interconnect/interconnect_tcp_session.cpp b/library/cpp/actors/interconnect/interconnect_tcp_session.cpp index 1602f4b8b2..0f286153ea 100644 --- a/library/cpp/actors/interconnect/interconnect_tcp_session.cpp +++ b/library/cpp/actors/interconnect/interconnect_tcp_session.cpp @@ -581,12 +581,14 @@ namespace NActors { TString err; ssize_t r = 0; do { + const ui64 begin = GetCycleCountFast(); #ifndef _win_ r = iovcnt == 1 ? Socket->Send(iovec[0].iov_base, iovec[0].iov_len, &err) : Socket->WriteV(iovec, iovcnt); #else r = Socket->Send(iovec[0].iov_base, iovec[0].iov_len, &err); #endif - Proxy->Metrics->IncSendSyscalls(); + const ui64 end = GetCycleCountFast(); + Proxy->Metrics->IncSendSyscalls((end - begin) * 1'000'000 / GetCyclesPerMillisecond()); } while (r == -EINTR); LOG_DEBUG_IC_SESSION("ICS16", "written# %zd iovcnt# %d err# %s", r, iovcnt, err.data()); |