Evgenij LegotskojJan. 5, 2018, 2:11 a.m.

Django - Tutorial 030. Opportunities VDS server for $ 5 for the project on Django

With the growth of site functionality, as well as attendance, it was possible to successfully test the capabilities of the current VDS server, which I currently use. I would like to describe my experience with VDS, as well as show how much this VDS keeps under certain conditions and sizes of the project.

I decided to tell about it right now, because a week ago I expanded the server's capacity by purchasing additional memory.

All the further narrative will be subjective, but I hope that it will make it possible to make a general picture, so that newcomers will be able to navigate in what server they need for their needs, and this will facilitate the choice of the server.

Server Configuration

Initially, the site worked on the minimum configuration that I managed to take. The fare is $5 per month. By the way, my ISP also has a cheaper tariff (190 rubles / month), but it is fixed, whereas my current tariff allows me to configure the configuration necessary for me and increase the server's capacity to one that is not available at fixed tariffs.


  1. Processor cores: 2 x 2,7 GHz
  2. RAM: 512 Mb
  3. SSD: 5Gb
  4. OS: Ubuntu 16.04
  5. Access to the Internet: 100 Mbit/s

All configuration of the server was done exclusively through the console, without any auxiliary tools like ISP Manager, which also absorbs some of the RAM, so this modest RAM was enough for me for a long time

Django project

The project itself has already grown quite strongly, and there are many data models responsible for such parts of the site as

To understand the whole scale, I will give the current structure of the data models of the site.

That is, the site is already a little more than a regular blog, and I make every effort to develop it in the framework of free time.

As the site grew and the code increased, there was a clear dependence on the increase in memory consumption. By the way ... it is possible to effectively reduce memory consumption by forcibly straightening the hands of the programmer by some methods of medieval torture. Seriously, in some cases it's enough to go through the program code of the project, find duplicate pieces of code and separate them into separate methods or subprojects; within Django, these will be applications (the Django structure of the site consists of applications). Therefore, periodic refactoring has become an integral part of website development for me.

If you take into account that in this configuration of the site there were three active instances of gunicorn , and also instances of celery, for the work of notifications, the memory consumption with such a project grew to 450 Mb in total, and some information began to be stored in the swap partition under which it was allocated 1Gb drive. As a result, the response of the site was 1.089 seconds according to Alexa Traffic Rank. After increasing the memory to 1 Gb and some optimization of the basic template, the response decreased to 0.857 seconds. I plan to work on the straightforwardness of the hands, the cleanliness of the code, and still enable the caching of the templates.

Site Attendance

In December 2017, the stable attendance of the site grew to 1,050-1150 unique visitors per day, which is very encouraging, and a new goal for me was (besides the development of functionality) to grow the site to 2,000 unique visitors.

The maximum attendance of the site was fixed on December 14, 2017 and amounted to 1,169 unique visitors per day.

But the load on the processor is not as great as you might think. The average daily load on the processor in this configuration is an example of 7 percent.

That is, there is actually no fundamental need to increase the number of processor cores in this server configuration.


In fact, Django on the minimum configuration of the VDS server, in my subjective opinion, can be at the level of 4000-5000 unique visitors with more modest functionality (about three times less). Which is quite good for a server for $5.

At the moment, I just increased the amount of RAM I needed.

If someone is interested in a hoster from whom I rent VDS, then this is TIMEWEB , which I recommend. During the time of using VDS-server there was not a single failure, the company warns about all preventive works and conducts them at night by MSK.

What I definitely would not recommend is to purchase virtual hosting. For Django it's a waste of money and time. Sooner or later you can start to grow and eventually you will need VDS, and there will begin problems with migration due to differences in the directory structure, etc.

For Django I recommend VDS-server of Timeweb hoster .

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate


Only authorized users can post comments.
Please, Log in or Sign up

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting

C++ - Test 001. The first program and data types

  • Result:53points,
  • Rating points-4

C++ - Test 001. The first program and data types

  • Result:60points,
  • Rating points-1

C++ - Test 001. The first program and data types

  • Result:40points,
  • Rating points-8
Last comments

Django - Tutorial 001. Deploying a site on Django + PostgreSQL + Gunicorn + Nginx

Ошибка в конфиге инжинкса про статику в root последний слеш лишний путь в таком виде получается /home/user/myprojectenv/myproject/myproject//static
  • Jurij
  • Jan. 20, 2021, 1:34 p.m.

Qt/C++ - Lesson 061. Adding images to the application using the Drag And Drop method from the file manager

// Вместо отрисовки иконки и текста будем отрисовывать только одно изображение // с небольшими отступами в 5 пикселей QPixmap pix(m_model->data(index).toString()); …
  • magrif
  • Jan. 19, 2021, 12:37 p.m.

Qt Сертификация

Здравствуйте. Подскажите, оплачивать ваучер прямо в выбранном тестовом центре? Можно ли загранник предъявить? Или свой паспорт, а заполнить транслитом? А то там пишут: Your name must exactl…
  • retmas
  • Jan. 17, 2021, 4:09 a.m.

Qt/C++ - Tutorial 074. Generating pseudo-random numbers, using STD library random

Дмитрий, решает. Просто автор, видимо, не сильно озаботился изучением документации QRandomGenerator. Да и в листинге с использованием qrand вызов функции qsrand на каждой итерации цикла нав…

Поздравляю всё Сообщество EVILEG с Новым Годом!!!

#include <iostream>using namespace std;int main() { cout << "Happy New Year and Thank you!"; return 0;}
Now discuss on the forum

QScrollArea dynamically add QCheckBoxes

QWidget *materialContainer = new QWidget(this);QVBoxLayout *materialLay = new QVBoxLayout();materialContainer->setLayout(materialLay);ui->_materialScrollArea->setWidget(materialContaine…

Ошибка при работе утилиты не удалось получить фабрику класса com для компонента с clsid

Всем привет! Мне для тестов нужна одна утилита. Она тестирует определенное оборудование. Поставил ее на новый ноут с Windows 10 Домашняя, 64-бит, версия 10.0.19041. Утилита работает, но спу…

Как в Android открыть свернутое приложение?

Это не вам, тот коммент судя по всему удалили, или я написал не туда

Qt: INTERNAL ERROR: failed to install GetMessage hook: 1158

ESP8266 и вправду не корректно закрывало соединение. Причина оказалась банальной: перед функцией ухода в глубокий сон ESP.deepSleep(60e6) необходимо было поставить небольшую задержку delay(1). В…
  • Nomad
  • Jan. 20, 2021, 8:48 a.m.

Ограничение доступа к ресурсу с по django-cors-headers

всем привет помогите разобраться гуглю и ниче не помогает есть проект с drf установил django-cors-headers добавил в INSTALLED_APPS добавил MIDDLEWARE слой для cor…
© EVILEG 2015-2020
Recommend hosting TIMEWEB