You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2010/11/05 06:40:49 UTC
svn commit: r1031441 - in /trafficserver/traffic/trunk: iocore/net/ proxy/
proxy/http2/
Author: zwoop
Date: Fri Nov 5 05:40:48 2010
New Revision: 1031441
URL: http://svn.apache.org/viewvc?rev=1031441&view=rev
Log:
TS-514 Improve code around proxy.process.net.connections_currently_open
Modified:
trafficserver/traffic/trunk/iocore/net/P_Net.h
trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h
trafficserver/traffic/trunk/iocore/net/P_UnixNet.h
trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc
trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc
trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc
trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
trafficserver/traffic/trunk/proxy/Main.cc
trafficserver/traffic/trunk/proxy/http2/HttpConfig.h
Modified: trafficserver/traffic/trunk/iocore/net/P_Net.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/P_Net.h?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/P_Net.h (original)
+++ trafficserver/traffic/trunk/iocore/net/P_Net.h Fri Nov 5 05:40:48 2010
@@ -77,6 +77,8 @@ RecIncrRawStatSum(net_rsb, mutex->thread
#define NET_SUM_DYN_STAT(_x, _r) \
RecIncrRawStatSum(net_rsb, mutex->thread_holding, (int)_x, _r)
+#define NET_READ_DYN_SUM(_x, _sum) RecGetRawStatSum(net_rsb, (int)_x, &_sum)
+
#define NET_READ_DYN_STAT(_x, _count, _sum) do {\
RecGetRawStatSum(net_rsb, (int)_x, &_sum); \
RecGetRawStatCount(net_rsb, (int)_x, &_count); \
@@ -88,11 +90,9 @@ do { \
RecSetRawStatCount(net_rsb, x, 0); \
} while (0);
-#define NET_INCREMENT_THREAD_DYN_STAT(_s, _t) \
- RecIncrRawStatSum(net_rsb, _t, (int) _s, 1);
-
-#define NET_DECREMENT_THREAD_DYN_STAT(_s, _t) \
- RecIncrRawStatSum(net_rsb, _t, (int) _s, -1);
+// For global access
+#define NET_SUM_GLOBAL_DYN_STAT(_x, _r) RecIncrGlobalRawStatSum(net_rsb, (_x), (_r))
+#define NET_READ_GLOBAL_DYN_SUM(_x, _sum) RecGetGlobalRawStatSum(net_rsb, _x, &_sum)
#include "inktomi++.h"
#include "P_EventSystem.h"
Modified: trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h (original)
+++ trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h Fri Nov 5 05:40:48 2010
@@ -137,8 +137,7 @@ extern ClassAllocator<SSLNetVConnection>
static inline SSLNetVConnection *
new_SSLNetVConnection(EThread * thread)
{
- ProxyMutex *mutex = thread->mutex;
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
SSLNetVConnection *vc = sslNetVCAllocator.alloc();
vc->connect_calls = 0;
vc->write_calls = 0;
Modified: trafficserver/traffic/trunk/iocore/net/P_UnixNet.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/P_UnixNet.h?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/P_UnixNet.h (original)
+++ trafficserver/traffic/trunk/iocore/net/P_UnixNet.h Fri Nov 5 05:40:48 2010
@@ -287,18 +287,9 @@ net_connections_to_throttle(ThrottleType
{
double headroom = t == ACCEPT ? NET_THROTTLE_ACCEPT_HEADROOM : NET_THROTTLE_CONNECT_HEADROOM;
- int64 sval = 0, cval = 0;
+ int64 sval = 0;
-#ifdef HTTP_NET_THROTTLE
- NET_READ_DYN_STAT(http_current_client_connections_stat, cval, sval);
- int http_user_agents = sval;
- // one origin server connection for each user agent
- int http_use_estimate = http_user_agents * 2;
- // be conservative, bound by number currently open
- if (http_use_estimate > currently_open)
- return (int) (http_use_estimate * headroom);
-#endif
- NET_READ_DYN_STAT(net_connections_currently_open_stat, cval, sval);
+ NET_READ_GLOBAL_DYN_SUM(net_connections_currently_open_stat, sval);
int currently_open = (int) sval;
// deal with race if we got to multiple net threads
if (currently_open < 0)
Modified: trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc Fri Nov 5 05:40:48 2010
@@ -387,8 +387,7 @@ SSLNetVConnection::SSLNetVConnection():
void
SSLNetVConnection::free(EThread * t) {
- ProxyMutex *mutex = t->mutex;
- NET_DECREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
got_remote_addr = 0;
got_local_addr = 0;
read.vio.mutex.clear();
Modified: trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc Fri Nov 5 05:40:48 2010
@@ -96,8 +96,7 @@ net_accept(NetAccept * na, void *ep, boo
vc = (UnixNetVConnection *) na->alloc_cache;
if (!vc) {
vc = na->allocateThread(e->ethread);
- ProxyMutex *mutex = e->ethread->mutex;
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
na->alloc_cache = vc;
#if TS_USE_DETAILED_LOG
@@ -347,7 +346,7 @@ NetAccept::do_blocking_accept(NetAccept
check_emergency_throttle(vc->con);
master_na->alloc_cache = NULL;
- RecIncrGlobalRawStatSum(net_rsb, net_connections_currently_open_stat, 1);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->submit_time = now;
vc->ip = vc->con.sa.sin_addr.s_addr;
vc->port = ntohs(vc->con.sa.sin_port);
@@ -495,7 +494,7 @@ NetAccept::acceptFastEvent(int event, vo
}
vc->con.fd = fd;
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
vc->submit_time = ink_get_hrtime();
Modified: trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc Fri Nov 5 05:40:48 2010
@@ -221,7 +221,7 @@ UnixNetProcessor::connect_re_internal(Co
);
SocksEntry *socksEntry = NULL;
#endif
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
vc->submit_time = ink_get_hrtime();
vc->setSSLClientConnection(true);
Modified: trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc Fri Nov 5 05:40:48 2010
@@ -1124,7 +1124,7 @@ UnixNetVConnection::connectUp(EThread *t
void
UnixNetVConnection::free(EThread *t)
{
- NET_DECREMENT_THREAD_DYN_STAT(net_connections_currently_open_stat, t);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
// clear variables for reuse
got_remote_addr = 0;
got_local_addr = 0;
Modified: trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.cc?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ trafficserver/traffic/trunk/proxy/Main.cc Fri Nov 5 05:40:48 2010
@@ -1185,43 +1185,43 @@ struct ShowStats: public Continuation
printf("r:rr w:ww r:rbs w:wbs open polls\n");
ink_statval_t sval, cval;
- NET_READ_DYN_STAT(net_calls_to_readfromnet_stat, sval, cval);
+ NET_READ_DYN_SUM(net_calls_to_readfromnet_stat, sval);
int64 d_rb = sval - last_rb;
- last_rb += d_rb;
- NET_READ_DYN_STAT(net_calls_to_readfromnet_afterpoll_stat, sval, cval);
+ last_rb += d_rb;
+ NET_READ_DYN_SUM(net_calls_to_readfromnet_afterpoll_stat, sval);
int64 d_r = sval - last_r;
- last_r += d_r;
+ last_r += d_r;
- NET_READ_DYN_STAT(net_calls_to_writetonet_stat, sval, cval);
+ NET_READ_DYN_SUM(net_calls_to_writetonet_stat, sval);
int64 d_wb = sval - last_wb;
- last_wb += d_wb;
- NET_READ_DYN_STAT(net_calls_to_writetonet_afterpoll_stat, sval, cval);
+ last_wb += d_wb;
+ NET_READ_DYN_SUM(net_calls_to_writetonet_afterpoll_stat, sval);
int64 d_w = sval - last_w;
- last_w += d_w;
+ last_w += d_w;
- NET_READ_DYN_STAT(net_read_bytes_stat, sval, cval);
+ NET_READ_DYN_STAT(net_read_bytes_stat, sval, cval);
int64 d_nrb = sval - last_nrb;
- last_nrb += d_nrb;
+ last_nrb += d_nrb;
int64 d_nr = cval - last_nr;
- last_nr += d_nr;
+ last_nr += d_nr;
- NET_READ_DYN_STAT(net_write_bytes_stat, sval, cval);
+ NET_READ_DYN_STAT(net_write_bytes_stat, sval, cval);
int64 d_nwb = sval - last_nwb;
- last_nwb += d_nwb;
+ last_nwb += d_nwb;
int64 d_nw = cval - last_nw;
- last_nw += d_nw;
+ last_nw += d_nw;
- NET_READ_DYN_STAT(net_connections_currently_open_stat, sval, cval);
- int64 d_o = cval;
+ NET_READ_GLOBAL_DYN_SUM(net_connections_currently_open_stat, sval);
+ int64 d_o = sval;
- NET_READ_DYN_STAT(net_handler_run_stat, sval, cval);
+ NET_READ_DYN_STAT(net_handler_run_stat, sval, cval);
int64 d_p = cval - last_p;
- last_p += d_p;
- printf("%lld:%lld %lld:%lld %lld:%lld %lld:%lld %lld %lld\n",
- d_rb, d_r, d_wb, d_w, d_nrb, d_nr, d_nwb, d_nw, d_o, d_p);
+ last_p += d_p;
+ printf("%lld:%lld %lld:%lld %lld:%lld %lld:%lld %lld %lld\n",
+ d_rb, d_r, d_wb, d_w, d_nrb, d_nr, d_nwb, d_nw, d_o, d_p);
#ifdef ENABLE_TIME_TRACE
int i;
- fprintf(fp, "immediate_events_time_dist\n");
+ fprintf(fp, "immediate_events_time_dist\n");
for (i = 0; i < TIME_DIST_BUCKETS_SIZE; i++)
{
if ((i % 10) == 0)
Modified: trafficserver/traffic/trunk/proxy/http2/HttpConfig.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpConfig.h?rev=1031441&r1=1031440&r2=1031441&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpConfig.h (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpConfig.h Fri Nov 5 05:40:48 2010
@@ -351,19 +351,19 @@ enum
extern RecRawStatBlock *http_rsb;
/* Stats should only be accessed using these macros */
-#define HTTP_INCREMENT_DYN_STAT(x) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, 1);
-#define HTTP_DECREMENT_DYN_STAT(x) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, -1);
-#define HTTP_SUM_DYN_STAT(x, y) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, (int) y);
-#define HTTP_SUM_GLOBAL_DYN_STAT(x, y) RecIncrGlobalRawStatSum(http_rsb,x,y)
+#define HTTP_INCREMENT_DYN_STAT(x) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, 1)
+#define HTTP_DECREMENT_DYN_STAT(x) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, -1)
+#define HTTP_SUM_DYN_STAT(x, y) RecIncrRawStat(http_rsb, mutex->thread_holding, (int) x, (int) y)
+#define HTTP_SUM_GLOBAL_DYN_STAT(x, y) RecIncrGlobalRawStatSum(http_rsb, x, y)
#define HTTP_CLEAR_DYN_STAT(x) \
do { \
RecSetRawStatSum(http_rsb, x, 0); \
RecSetRawStatCount(http_rsb, x, 0); \
-} while (0);
+ } while (0);
-#define HTTP_READ_DYN_SUM(x, S) RecGetRawStatSum(http_rsb, (int)x, &S); // This aggregates threads too
-#define HTTP_READ_GLOBAL_DYN_SUM(x, S) RecGetGlobalRawStatSum(http_rsb, int(x), &S)
+#define HTTP_READ_DYN_SUM(x, S) RecGetRawStatSum(http_rsb, (int)x, &S) // This aggregates threads too
+#define HTTP_READ_GLOBAL_DYN_SUM(x, S) RecGetGlobalRawStatSum(http_rsb, (int)x, &S)
#define HTTP_ConfigReadInteger REC_ConfigReadInteger
#define HTTP_ConfigReadString REC_ConfigReadString