log peers that have a full send buffer

This commit is contained in:
Arvid Norberg 2012-03-09 17:03:10 +00:00
parent 3442534085
commit 671694959f
2 changed files with 17 additions and 1 deletions

View File

@ -135,7 +135,7 @@ reports = [
('overall_rates', 'rate', 'B/s', 'download and upload rates', ['uploaded bytes', 'downloaded bytes', 'upload rate', 'download rate', 'smooth upload rate', 'smooth download rate']),
('disk_write_queue', 'Bytes', 'B', 'bytes queued up by peers, to be written to disk', ['disk write queued bytes', 'disk queue limit', 'disk queue low watermark']),
('peers_requests', 'num', '', 'incoming piece request rate', ['piece requests', 'piece rejects', 'max piece requests', 'invalid piece requests', 'choked piece requests', 'cancelled piece requests']),
('peers_upload', 'num', '', 'number of peers by state wrt. uploading', ['peers up interested', 'peers up unchoked', 'peers up requests', 'peers disk-up', 'peers bw-up', 'max unchoked']),
('peers_upload', 'num', '', 'number of peers by state wrt. uploading', ['peers up interested', 'peers up unchoked', 'peers up requests', 'peers disk-up', 'peers up send buffer', 'peers bw-up', 'max unchoked']),
('peers_download', 'num', '', 'number of peers by state wrt. downloading', ['peers down interesting', 'peers down unchoked', 'peers down requests', 'peers disk-down', 'peers bw-down','num end-game peers']),
('peer_errors', 'num', '', 'number of peers by error that disconnected them', ['error peers', 'peer disconnects', 'peers eof', 'peers connection reset', 'connect timeouts', 'uninteresting peers disconnect', 'banned for hash failure', 'no memory peer errors', 'too many peers', 'transport timeout peers', 'connection refused peers', 'connection aborted peers', 'permission denied peers', 'no buffer peers', 'host unreachable peers', 'broken pipe peers', 'address in use peers', 'access denied peers', 'invalid argument peers', 'operation aborted peers']),
('peer_errors_incoming', 'num', '', 'number of peers by incoming or outgoing connection', ['error incoming peers', 'error outgoing peers']),

View File

@ -1275,6 +1275,8 @@ namespace aux {
":cancelled piece requests"
":piece rejects"
":peers up send buffer"
"\n\n", m_stats_logger);
}
#endif
@ -3610,6 +3612,7 @@ namespace aux {
int peers_down_interesting = 0;
int peers_up_requests = 0;
int peers_down_requests = 0;
int peers_up_send_buffer = 0;
// number of torrents that want more peers
int num_want_more_peers = 0;
@ -3686,6 +3689,7 @@ namespace aux {
int num_end_game_peers = 0;
int reading_bytes = 0;
int pending_incoming_reqs = 0;
for (connection_map::iterator i = m_connections.begin()
, end(m_connections.end()); i != end; ++i)
{
@ -3732,6 +3736,16 @@ namespace aux {
++peer_dl_rate_buckets[dl_bucket];
++peer_ul_rate_buckets[ul_bucket];
boost::uint64_t upload_rate = int(p->statistics().upload_rate());
int buffer_size_watermark = upload_rate
* m_settings.send_buffer_watermark_factor / 100;
if (buffer_size_watermark < m_settings.send_buffer_low_watermark)
buffer_size_watermark = m_settings.send_buffer_low_watermark;
else if (buffer_size_watermark > m_settings.send_buffer_watermark)
buffer_size_watermark = m_settings.send_buffer_watermark;
if (p->send_buffer_size() + p->num_reading_bytes() >= buffer_size_watermark)
++peers_up_send_buffer;
utp_stream* utp_socket = p->get_socket()->get<utp_stream>();
if (utp_socket)
{
@ -3983,6 +3997,8 @@ namespace aux {
STAT_LOG(d, m_cancelled_piece_requests);
STAT_LOG(d, m_piece_rejects);
STAT_LOG(d, peers_up_send_buffer);
fprintf(m_stats_logger, "\n");
#undef STAT_LOG