0

I am thinking of buying a computer to use only for running Tor relays from England in the United Kingdom.

I am writing to ask for advice on which details of the machine make a difference to the effectiveness of the machine when used only for this purpose.

I would be installing Ubuntu or another Linux distro on the machine, but am only asking about hardware in this question, assuming that the choice of distro is not related to the choice of hardware. If that assumption is incorrect, please let me know.

The internet connection is via a BT Home Hub, and the relevant speeds BT have told me about are 55 Mbps to download and 10 Mbps to upload.

I am considering buying a Lenovo Thinkcentre M93. They are office desktop machines which would cost in the region of £100 to £200 secondhand, and have an Intel Core i3, i5, or i7 processor. I would use the passmark.com website to compare the power of the CPUs.

I would guess that the power of the processor will matter, but have no idea how much difference it would make to have a passmark rating of 7000 rather than 4000.

Is the number of physical or logical cores important, or the passmark score per physical or logical core, rather than the total, if a Tor relay only uses one physical or logical core, as I have seen mentioned somewhere?

Would the the amount of RAM will matter up to a point? I do not know if the relevant point is 4GB, 8GB, or 16GB.

Would the type of ethernet card or connection matter?

Would the amount and type of storage matter, HDD or SSD? I would guess that anything over 80GB would be fine, and more would not be better over that level, but again am not sure. I would presume that SSD is better than HDD, but again am not sure.

The machine would be connected by cable to the BT Home Hub. Does the type of cable matter, category 5e, 6, or 6a? (These are the category labels in the UK).

Am I thinking along reasonable lines, or should I be looking at gaming machines rather than business ones, or a different family of CPUs than Intel Core?

With thanks in advance for comments and help based on knowledge and experience.

1
  • if you'll need a help/hint/advice - just drop a line here, I'll be glad to help!
    – Alexey Vesnin
    Commented Oct 7, 2017 at 21:58

2 Answers 2

0

Well, for just a Tor node it is more than enough in matter of hardware, I do recommend you to use i5/i7, but i3 will work as well if the CPU will have a high-speed cores: Tor's crypto is not fully-multithread right now, so you need 2+ physical cores, not a physical+hyperthreading. Select CPU with the highest bus speed, this will be important. CPU core clockspeed can be even 2GHz - but you can have more if you wish: on 10Mbits(symmetrical part of your ISP channel) dualcore 2GHz with two physical cores will be just fine.

RAM - make it fast, of course, but according to the harware you've specified you don't need a latest one, just use the fast one that is supported by the CPU you're using. Make sure that it's running in dual-channel mode - this is really important! The RAM volume is not so relevant to Tor nodes nowdays, so having 2 or 4 gigabytes of RAM will be just fine: Linux will make use of relatively-nothing like 128Mb's of RAM for itself, the rest will be buffers and Tor itself. $ gigs will be better due to higher buffer space available.

Hard drive - even an old SATA-1 drive will be more than enough due to small storage load for Tor: if even a burst of writing, filesystem buffers will take the spike and dump the data on hard disk without any perfomance issues: Tor does not using a heavy disk io.

A word of advice: to properly utilize Intel CPU's accelerations, make sure to compile Tor and it's required libraries chain(zlib, liblzma, gmp, openssl, libevent, zstd) with CFLAGS="-mtune=native -m64" to make sure that maximal hardware instruction utilization for CPU is achieved. Linux kernel should have 100HZ system timer, if there will be only Tor on the machine. Also use static build attaching the required libraries statically: Linux use to have auto-updates updating the shared libraries and causing tor to crush because of that sometimes. That's how I do it:

./configure --prefix=/usr/tor --with-tor-user=tor --with-tor-group=tor --with-openssl-dir=/usr/openssl --enable-static-openssl --with-zlib-dir=/usr --with-libevent-dir=/usr --enable-static-libevent --enable-systemd LIBS=-ldl CFLAGS="-mtune=native -march=native -I/usr/openssl/include -L/usr/openssl/lib -I/usr/zstd/include -L/usr/zstd/lib" LDFLAGS="-L/usr/openssl/lib -L/usr/zstd/lib" PKG_CONFIG_PATH="/usr/openssl/lib/pkgconfig:/usr/zstd/share/pkgconfig"

Cable category should be at least 5e with shielding, or short 5e without shield. If you want to use higher categories - well, you're free to try, but on your described internet connection speed it will not make a big sense. The computer you've described uses to have a gigabit ethernet on a motherboard, so no need for an extra card on these speeds.

0

RAM isn't especially important, it can run on lower values however if you're going to be shifting a lot of traffic then the Tor process alone might take up a few hundred MB of RAM in buffers. Any reasonably modern latop, desktop or server should have sufficient RAM.

Tor's cryptography is currently single core, if CPU becomes a bottleneck you can run two Tor relays simultaneously to allow it to use up two cores. A major advantage is if the CPU has AESNI (AES Native Instructions), which will allow libssl to take advantage of them and perform much faster cryptographic operations. I'm currently shifting around 100Mbps and CPU isn't the bottleneck (2.4Ghz Haswell), it's likely only going to be an issue if you're shifting much higher volumes of traffic.

What I will say is that you mention:

The machine would be connected by cable to the BT Home Hub.

This probably means you won't be shifting much traffic (due to limitations of terrestrial connections, which normally have limited upload capacity). There can also be an issue with consumer routers and their ability to handle large numbers of connections because they have limited resources, and Tor relays will often have thousands of connections open at one time.

Given that you won't be moving a lot of traffic, you won't need an especially powerful computer.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .