1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Perf: Add stat for io of ST.

This commit is contained in:
winlin 2021-02-10 18:20:11 +08:00
parent 7a96b28735
commit 7b913b1115
3 changed files with 200 additions and 10 deletions

View file

@ -39,6 +39,41 @@ extern SrsPps* _srs_pps_pub;
extern SrsPps* _srs_pps_conn;
extern SrsPps* _srs_pps_dispose;
extern unsigned long long _st_stat_recvfrom;
extern unsigned long long _st_stat_recvfrom_eagain;
extern unsigned long long _st_stat_sendto;
extern unsigned long long _st_stat_sendto_eagain;
SrsPps* _srs_pps_recvfrom = new SrsPps(_srs_clock);
SrsPps* _srs_pps_recvfrom_eagain = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendto = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendto_eagain = new SrsPps(_srs_clock);
extern unsigned long long _st_stat_read;
extern unsigned long long _st_stat_read_eagain;
extern unsigned long long _st_stat_readv;
extern unsigned long long _st_stat_readv_eagain;
extern unsigned long long _st_stat_writev;
extern unsigned long long _st_stat_writev_eagain;
SrsPps* _srs_pps_read = new SrsPps(_srs_clock);
SrsPps* _srs_pps_read_eagain = new SrsPps(_srs_clock);
SrsPps* _srs_pps_readv = new SrsPps(_srs_clock);
SrsPps* _srs_pps_readv_eagain = new SrsPps(_srs_clock);
SrsPps* _srs_pps_writev = new SrsPps(_srs_clock);
SrsPps* _srs_pps_writev_eagain = new SrsPps(_srs_clock);
extern unsigned long long _st_stat_recvmsg;
extern unsigned long long _st_stat_recvmsg_eagain;
extern unsigned long long _st_stat_sendmsg;
extern unsigned long long _st_stat_sendmsg_eagain;
extern unsigned long long _st_stat_sendmmsg;
extern unsigned long long _st_stat_sendmmsg_eagain;
SrsPps* _srs_pps_recvmsg = new SrsPps(_srs_clock);
SrsPps* _srs_pps_recvmsg_eagain = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendmsg = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendmsg_eagain = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendmmsg = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sendmmsg_eagain = new SrsPps(_srs_clock);
ISrsHybridServer::ISrsHybridServer()
{
}
@ -225,15 +260,70 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
// Resident Set Size: number of pages the process has in real memory.
int memory = (int)(u->rss * 4 / 1024);
_srs_pps_cids_get->update(); _srs_pps_cids_set->update();
_srs_pps_timer->update(); _srs_pps_pub->update(); _srs_pps_conn->update();
_srs_pps_dispose->update();
static char buf[128];
srs_trace("Hybrid cpu=%.2f%%,%dMB, cid=%d,%d, timer=%d,%d,%d, free=%d",
string cid_desc;
_srs_pps_cids_get->update(); _srs_pps_cids_set->update();
if (_srs_pps_cids_get->r10s() || _srs_pps_cids_set->r10s()) {
snprintf(buf, sizeof(buf), ", cid=%d,%d", _srs_pps_cids_get->r10s(), _srs_pps_cids_set->r10s());
cid_desc = buf;
}
string timer_desc;
_srs_pps_timer->update(); _srs_pps_pub->update(); _srs_pps_conn->update();
if (_srs_pps_timer->r10s() || _srs_pps_pub->r10s() || _srs_pps_conn->r10s()) {
snprintf(buf, sizeof(buf), ", timer=%d,%d,%d", _srs_pps_timer->r10s(), _srs_pps_pub->r10s(), _srs_pps_conn->r10s());
timer_desc = buf;
}
string free_desc;
_srs_pps_dispose->update();
if (_srs_pps_dispose->r10s()) {
snprintf(buf, sizeof(buf), ", free=%d", _srs_pps_dispose->r10s());
free_desc = buf;
}
string recvfrom_desc;
_srs_pps_recvfrom->update(_st_stat_recvfrom); _srs_pps_recvfrom_eagain->update(_st_stat_recvfrom_eagain);
_srs_pps_sendto->update(_st_stat_sendto); _srs_pps_sendto_eagain->update(_st_stat_sendto_eagain);
if (_srs_pps_recvfrom->r10s() || _srs_pps_recvfrom_eagain->r10s() || _srs_pps_sendto->r10s() || _srs_pps_sendto_eagain->r10s()) {
snprintf(buf, sizeof(buf), ", udp=%d,%d,%d,%d",
_srs_pps_recvfrom->r10s(), _srs_pps_recvfrom_eagain->r10s(),
_srs_pps_sendto->r10s(), _srs_pps_sendto_eagain->r10s()
);
recvfrom_desc = buf;
}
string io_desc;
_srs_pps_read->update(_st_stat_read); _srs_pps_read_eagain->update(_st_stat_read_eagain);
_srs_pps_readv->update(_st_stat_readv); _srs_pps_readv_eagain->update(_st_stat_readv_eagain);
_srs_pps_writev->update(_st_stat_writev); _srs_pps_writev_eagain->update(_st_stat_writev_eagain);
if (_srs_pps_read->r10s() || _srs_pps_read_eagain->r10s() || _srs_pps_readv->r10s() || _srs_pps_readv_eagain->r10s() || _srs_pps_writev->r10s() || _srs_pps_writev_eagain->r10s()) {
snprintf(buf, sizeof(buf), ", io=%d,%d,%d,%d,%d,%d",
_srs_pps_read->r10s(), _srs_pps_read_eagain->r10s(),
_srs_pps_readv->r10s(), _srs_pps_readv_eagain->r10s(),
_srs_pps_writev->r10s(), _srs_pps_writev_eagain->r10s()
);
io_desc = buf;
}
string msg_desc;
_srs_pps_recvmsg->update(_st_stat_recvmsg); _srs_pps_recvmsg_eagain->update(_st_stat_recvmsg_eagain);
_srs_pps_sendmsg->update(_st_stat_sendmsg); _srs_pps_sendmsg_eagain->update(_st_stat_sendmsg_eagain);
_srs_pps_sendmmsg->update(_st_stat_sendmmsg); _srs_pps_sendmmsg_eagain->update(_st_stat_sendmmsg_eagain);
if (_srs_pps_recvmsg->r10s() || _srs_pps_recvmsg_eagain->r10s() || _srs_pps_sendmsg->r10s() || _srs_pps_sendmsg_eagain->r10s() || _srs_pps_sendmmsg->r10s() || _srs_pps_sendmmsg_eagain->r10s()) {
snprintf(buf, sizeof(buf), ", msg=%d,%d,%d,%d,%d,%d",
_srs_pps_recvmsg->r10s(), _srs_pps_recvmsg_eagain->r10s(),
_srs_pps_sendmsg->r10s(), _srs_pps_sendmsg_eagain->r10s(),
_srs_pps_sendmmsg->r10s(), _srs_pps_sendmmsg_eagain->r10s()
);
msg_desc = buf;
}
srs_trace("Hybrid cpu=%.2f%%,%dMB%s%s%s%s%s%s",
u->percent * 100, memory,
_srs_pps_cids_get->r10s(), _srs_pps_cids_set->r10s(),
_srs_pps_timer->r10s(), _srs_pps_pub->r10s(), _srs_pps_conn->r10s(),
_srs_pps_dispose->r10s()
cid_desc.c_str(), timer_desc.c_str(), free_desc.c_str(),
recvfrom_desc.c_str(), io_desc.c_str(), msg_desc.c_str()
);
return err;