The objective of this project is to performance tune an Ubuntu [url removed, login to view] LTS seedbox (used for seeding torrents). The overall system should be tuned, including the operating system, bittorrent client (rTorrent), etc. Extensive documentation should be maintained, explaining every step taken and why. The primary goal of this project is not to create a tuned box, but rather to explain (via documentation) each step taken to create the final result. The entire process should be completely reproducible via a moderately skilled linux admin by reading the documentation at the end of the project.
There are a handful of other, miscellaneous requirements specific to rTorrent, so experience with rTorrent will be helpful.
**Detailed Project Requirements**
* Assess and measure overall performance of existing system. Provide factual data to document existing bottlenecks.
* Recommend performance enhancements. Implement enhancements approved by client.
* Re-perform assess & measure phase. Provide factual data to document existing bottlenecks. Rinse/repeat until optimal performance is achieved.
* rTorrent: Create optimal [url removed, login to view] file that can support 1000 - 2000 active torrents. File should be harmonized with the performance of the rest of the system. (e.g. network.max_open_files doesn't cause i/o bottlenecks on HDD).
* rTorrent: create 3-5 custom views, including "display by tracker", "display by active" and "sort by last active date". Up to 2 additional views may be defined at a later date.
* Document each step used in the process. Documentation may assume reader has moderate linux knowledge. Documentation should explain not only WHAT to do, but WHY to do it.
* Use only software/kernels that are in the default Ubuntu [url removed, login to view] LTS package repository. (an exception may be made for rTorrent and lib Torrent)
* All tools should be CLI-based. No web-based or GUI-based tools. (ncurses and similar is fine)
* Provide email support and answer clarifying questions via email for 30 days after end of project.
* Primary communication will be via email and IM (Skype). Some voice communication may be required.
* Bidder should be fluent in written and spoken English.
* Bidder should have access to Skype for instant messaging and voice communication.
This is not a job for someone who configures/tunes by feel or subjective opinion. Factual, measurable data must be used to support opinions and conclusions. The bidder must have detailed knowledge of linux performance tuning. sysctl, ulimits, iostat, etc. Don't bid unless you know how to use these tools + others to quantitatively measure and tune OVERALL linux system performance.
Additionally, don't bid unless you're comfortable doing quality documentation. The final documents produced will be used to validate work done and, if the results cannot be reproduced, the project will not be deemed successful.
If you enjoy teaching and training others, this project is perfect for you. (assuming you have the other requisite skills) The overall goal of this project is to train others on how to performance tune a seedbox.
Clarifying questions welcome.