From 2f5265bee62492cd2e9f64685d815c05b6ea80a7 Mon Sep 17 00:00:00 2001
From: z3APA3A <3APA3A@3proxy.ru>
Date: Fri, 6 Oct 2017 18:38:27 +0300
Subject: [PATCH] highload documentation updated
---
doc/html/highload.html | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/doc/html/highload.html b/doc/html/highload.html
index 2692a3e..01f4160 100644
--- a/doc/html/highload.html
+++ b/doc/html/highload.html
@@ -49,6 +49,13 @@ expecation.
Extending system limitation
Check manuals / documentation for your system limitations. You may need to change
sysctls or even rebuild the kernel from source.
+To help with system-dependant settings, 3proxy supports different socket options
+which can be set via -ol option for listening socket, -oc for proxy-to-client
+socket and -os for proxy-to-server socket. Example:
+
+proxy -olSO_REUSEADDR,SO_REUSEPORT -ocTCP_TIMESTAMPS,TCP_NODELAY -osTCP_NODELAY
+
+available options are system dependant.
Extending ephemeral port range
Check ephemeral port range for your system and extend it to reuired number of ports.
Ephimeral range is always limited to maximum number of ports (64K). To extend
@@ -114,4 +121,26 @@ monitor "/some/path/3proxy/3proxy.ver"
After config is updated, change version file for 3proxy to reload configuration,
e.g. with "touch /some/path/3proxy/3proxy.ver".
-
\ No newline at end of file
+
+Use TCP_NODELAY to speed-up connections with small amount of data
+If most requests require exchange with a small amount of data in a both ways
+without the need for bandwidth, e.g. messengers or small web request,
+you can eliminate Nagle's algorithm delay with TCP_NODELAY flag. Usage example:
+
+proxy -osTCP_NODELAY -ocTCP_NODELAY
+
+sets TCP_NODELAY for client (oc) and server (os) connections.
+
+
+Use slice to speedup large data amount transfers
+slice() allows to copy data between connections without copying to process
+addres space. It can speedup proxy on high bandwidth connections, if most
+connections require large data transfers. "-s" allows slice usage. Example:
+
+proxy -s
+
+Slice is only available in Linux and is currently beta option available in
+devel version. Do not use it in production without testing. Slice requires
+more system buffers, but reduces process memory usage.
+Do not use slice if there is a lot of short-living connections with no bandwidth
+requirements.