summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog12
-rw-r--r--debian/tor.default9
-rw-r--r--debian/tor.init15
3 files changed, 33 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog
index d210a897c8..397e87392f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+tor (0.2.0.19-alpha+svn-1) unreleased; urgency=low
+
+ * Change the default for MAX_FILEDESCRIPTORS in our init script to depend
+ on the number of system-wide available file descriptors:
+ /proc/sys/fs/file-max is bigger than 100k, set ulimit -n to 32k, if it's
+ smaller than 20k set it to 1024. Big servers at the moment regularly use
+ more than 10k FDs, so our old default of 8k no longer is sufficient. On
+ the other hand we don't want lower end systems to run out of FDs on Tor's
+ account.
+
+ -- Peter Palfrader <weasel@debian.org> Wed, 20 Feb 2008 23:27:35 +0100
+
tor (0.2.0.19-alpha-1) experimental; urgency=low
* New upstream version.
diff --git a/debian/tor.default b/debian/tor.default
index 237e5bc520..1ae1e15861 100644
--- a/debian/tor.default
+++ b/debian/tor.default
@@ -9,10 +9,15 @@ RUN_DAEMON="yes"
#
# Servers sometimes may need more than the default 1024 file descriptors
-# if they are very busy and have many clients connected to them.
+# if they are very busy and have many clients connected to them. The top
+# servers as of early 2008 regularly have more than 10000 connected
+# clients.
# (ulimit -n)
#
-MAX_FILEDESCRIPTORS=8192
+# (the default varies as it depends on the number of available system-wide file
+# descriptors. See the init script in /etc/init.d/tor for details.)
+#
+# MAX_FILEDESCRIPTORS=
#
# If tor is seriously hogging your CPU, taking away too much cycles from
diff --git a/debian/tor.init b/debian/tor.init
index ec5707d7d1..415467e87e 100644
--- a/debian/tor.init
+++ b/debian/tor.init
@@ -25,7 +25,20 @@ TORPID=$TORPIDDIR/tor.pid
DEFAULTSFILE=/etc/default/$NAME
WAITFORDAEMON=60
ARGS=""
-MAX_FILEDESCRIPTORS=8192
+# Let's try to figure our some sane defaults:
+if [ -r /proc/sys/fs/file-max ]; then
+ system_max=`cat /proc/sys/fs/file-max`
+ if [ "$system_max" -gt "100000" ] ; then
+ MAX_FILEDESCRIPTORS=32768
+ elif [ "$system_max" -gt "20000" ] ; then
+ MAX_FILEDESCRIPTORS=8192
+ else
+ MAX_FILEDESCRIPTORS=1024
+ fi
+else
+ MAX_FILEDESCRIPTORS=8192
+fi
+
NICE=""
test -x $DAEMON || exit 0