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.

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
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
b

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

  • Result:50points,
  • Rating points-4
US

C++ - Test 005. Structures and Classes

  • Result:91points,
  • Rating points8
US

C++ - Test 002. Constants

  • Result:33points,
  • Rating points-10
Last comments
t

Qt/C++ - Lesson 013. QMenu – How to work with context menu in QTableView?

Добрый день, в строке 49 файла mainwindow.cpp создаётся меню и оно будет создаваться каждый раз при его вызове. Т.е. каждый раз будет выделяться память под QMenu. Это же утечка памяти или Q…
TF

Qt/C++ - Lesson 054. Reading data from a CSV file, and their representation via QStandardItemModel

А если мне надо данными из файла подписать оси x и y и построить график как это сделать?

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

Лично для меня loader - это компонень, который загружает какую-то часть внутри окна, поэтому с этой точки зрения я бы не стал рассматривать использование loader лоя открытия окон, только для зап…
KF

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

добрый день, грамотно ли использовать loader для загрузки небольших диалоговых окон по клику из меню? и если да, то возникает проблема: загрузили первое диалоговое окно, потом его закрыли, а отк…
Q
  • QISHON
  • July 16, 2021, 6:28 a.m.

Data encryption by RSA algorithm in Qt with public and private keys without binding to OpenSSL

Возможно ли с помощью этой библиотеки шифровать файлы, а не обычные строки?
Now discuss on the forum

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.
IP

Как совместить таблицу и дерево в Qt

Необходимо использовать виджет QTreeView, для него необходимо сделать соответствующую модель. Примеры есть в самом Qt
K

Как поменять шаг оси с числового формата на текстовый

Добрый день. Только начинаю знакомство с Qt, а именно с библиотекой QCustomPlot. Столкнулся с такой проблемой - не знаю как поменять оси с числового на текстовый формат как на скрине. …

QWebEngineView получить событие фокуса для полей редактирования

от QWebEngineView возможно это и не получите, посмотрите в сторону WinApi для получения данного события

С++ и qml передача модели

для отображения данных нужно использовать, в вашем случае, ListModel тыц и тыц , можно представить модель классом с++ и в qml его подгружать. а для загрузки страниц использ…
About
Services
© EVILEG 2015-2021
Recommend hosting TIMEWEB