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

Ubuntu, Django, VDS

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.

Configuration:

  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.

Conclusions

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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it
Donate

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways

PayPalYandex.Money
Timeweb

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 Timeweb
n
June 5, 2020, 2:28 a.m.
n1k0m1

Qt - Test 001. Signals and slots

  • Result:0points,
  • Rating points-10
s
June 3, 2020, 1:56 a.m.
silo1995

C++ - Тест 003. Условия и циклы

  • Result:35points,
  • Rating points-10
AP
June 2, 2020, 9:11 p.m.
Aleksej Pikenin

C++ - Test 005. Structures and Classes

  • Result:75points,
  • Rating points2
Last comments
June 5, 2020, 1:39 a.m.
Evgenij Legotskoj

Qt/C++ - Tutorial 091. How to write a custom delegate controlling the highlighting of a row in a table

По-моему, смысла в этом нет особого. Если делегат будет игнорировать настройки таблицы, то это приведёт ещё к большему непониманию, что вообще происходит, для программиста, который после вас буд…
June 5, 2020, 1:34 a.m.
IscanderChe

Qt/C++ - Tutorial 091. How to write a custom delegate controlling the highlighting of a row in a table

Сижу, размышляю: можно ли переписать делегата так, чтобы независимо от настроек строк выделялись строки?
June 5, 2020, 1:31 a.m.
Evgenij Legotskoj

Qt/C++ - Tutorial 091. How to write a custom delegate controlling the highlighting of a row in a table

Понятно. Я не обратил внимания на то, что там было в старом коде по настройкам строк :)
June 5, 2020, 1:27 a.m.
IscanderChe

Qt/C++ - Tutorial 091. How to write a custom delegate controlling the highlighting of a row in a table

Разобрался. У вас изначально в проекте были вот эти настройки: ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);ui->tableView->setSelectionMode(QAbstractItemVie…
June 4, 2020, 11:10 a.m.
IscanderChe

Qt/C++ - Tutorial 091. How to write a custom delegate controlling the highlighting of a row in a table

Полностью скопировал пример - всё правильно работает. Значит, где-то у меня ошибки в тестовом проекте. Буду разбираться. Извините за беспокойство. :)
Now discuss on the forum
June 5, 2020, 6:13 a.m.
IscanderChe

Фильтр для QtableView sql

Добрый день. Для такой фильтрации необходимо использовать QSortFilterProxyModel. В оффдоках есть хороший пример.
MA
June 4, 2020, 2:46 a.m.
Mihail A

Qt- C++ QTableView подсветить строку

Спасибо.
f
June 3, 2020, 1:49 a.m.
fryn3

Можно ли сделать в QML таблицу как в Excel?

edi-tableview - нашел пока такое выглядит коряво, посмотрим что можно сделать
June 2, 2020, 2:46 a.m.
Evgenij Legotskoj

Медиа файлы Google Firebase

Картинки можете попробовать сжимать через QPixmap, там есть возможность установки scaleFactor, через него можете устанавливать нужные параметры. А что касается конвертации видео, то лучше п…
June 2, 2020, 2:01 a.m.
Evgenij Legotskoj

Перехват обращения к локальным файлам QWebEngineView

В вашем случае вполне адекватное решение. Так сказать меньше зло. В противном случае пришлось бы очень много переписывать и перепиливать.
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB