kaioc
By:
kaioc

What droplet do you recommend to me? I really need help!

July 21, 2017 194 views
WordPress Ubuntu 16.04 Ubuntu

I'm creating a giveaway website and want to know that droplet do you recommend to me. I really don't know anymore what to do after 2 failed attempts.
I need to run the website without receive the "508 Resource Limit Reached" or something like this. The traffic isn't too high at the beginning, but I really want to hang the server up for at least between 500 and 1000 users online simultaneously.

On my first attempt, I created a $5 droplet and created my website. Conclusion: I got the the "508 Resource Limit Reached" error with less than 100 users online at the same time (between 30 and 50 to be more exact). I know that a $5 is a ordinary value and wouldn't hang a lot of users, but I was surprised when the site went down with so few users. Well, after this, I decided to close the droplet and migrate to something with a better cost benefit. After a lot of searching, I found the hoster FastComet. I saw very good reviews for his services, mainly with Wordpress... I was wrong. Was the worst thing that I did on the last months. I literally ripped $26.

When I searched, I saw that the his specifications were higher than from the $10 droplet, and decided to hire it. BUT... I forgot a simple detail: they work as a shared hosting. It broke me down. I launched the website and got the same error than before.. but this time with a help of the support, I saw that the problem was caused by a plugin, and not the server itself. So I had to rework the website without this plugin and today, launched it, I didn't got anymore the error (The site literally stopped to work until the support make a backup), but I had the same problem of Resource Limit Reached. They gave me 60 Number of Processes and 30 Entry Processes. It increased so fast that when the site reached 50 users online, I got the "Resource Limit Reached" error. Until the users leave the site, and the Processes decreased.
I never used a shared host before, and don't know if this really is normal or if this hosting is a sh**t. But was the cheapest for a beginning for me. I haven't so much money for a GoDaddy or other shared hosting and don't know/have experience to judge what host is better.

Well, now that I know that a plugin caused all that problem with my droplet and shared host at the beginning, I want to know if it will fit with what I want. Between 500 and 1000 users online simultaneously. Or if I will need a better droplet, of $10 or even $20. Because in less than 1 week I had the worst service ever on my life and never gotta go back to a shared host.

Please, give me suggestions. Remembering that I'm newbie too, so I don't know so much things about it. I'm just learning.

If you want more specifications or informations or the plugins that I'm using, just ask me. I need so much of a good and clean answer for it.

3 comments
  • You could try a $20 droplet but with an estimated max workload of 1000 concurrent users, I think you'll far exceed the capacity of that sized server. I think you want to look at something more along the lines of 8 GB memory minimum. You said something about Wordpress, so there are some caching plugins you can use to help take off some of the load on the DB side of things.

    Think of it this way: each concurrent user will use at least one process. Each process will consume some of your server's resources (namely memory and CPU). You need to have enough resources to handle what you think your maximum process threshold might be (1k concurrent users or about 1k processes).

  • Another option I thought of after I submitted my first comment is to employ a Content Delivery Network (CDN) to attempt to alleviate some of the traffic slamming your server. An example would be Cloudflare. What would happen is instead of visitors banging on your physical server, they'd instead be hitting caching servers closer to your visitor's physical location, which could actually give them a better experience since they'd likely be served pages faster.

  • My website will work basically as two ways: First- A simple blog and Second- Giveaways of games, what call a lot of users at same time. They will have to do some tasks to unlock the key-code. This tasks was written in JS where you have to click on one button/link to unlock another one. Now imagine 1000 users doing this. Do you think that it'll use a lot of memory?

    Also, has anyway to dribble the excess memory used? Because I read about something called "Swap" that can do it.

    And finally: thanks for the suggestion. Of course that at the beginning I'll not have 1000 users at the same time using the site, but I don't want that merely 50 users explode the server down. So in the case of at a maximum of 200 users, a $5 can hang it, or I'll have to use a $10 for now? And I can expand the droplet later without any damage on my files/db? Starting with $5/10, expanding to $20 and so going on?

2 Answers

Hi @kaioc

It sounds like you've been on an adventure - but not a fun one.

First, I would normally say that it's difficult to run WordPress on a $5 droplet. Upgrade the droplet to $10, since you're going to run out of RAM, which will crash your database.

Is the Giveaways part of your site just a simple, static HTML+CSS+JS file? If yes, then you should be able to host 1000 concurrent connections on a $10 droplet easily.
But if it involves database queries or other dynamic content (like being a part of WordPress), then the amount of concurrent connections will be limited drastically and I would highly recommend that you use some type of cache.

You can resize the droplet up without any impact to database/etc. If you want to be able to resize down, then make sure you only resized CPU+RAM only, since it's not possible to scale disk size down without the possibility of losing data.
Do not touch SWAP - unless you really know what you're doing and only using it avoid spikes, then I would recommend that you just buy a bigger droplet.

But I think your problem relates more to configuration and tuning of the services (web server, database, etc).
Just adding more CPU+RAM does not change any configurations, which means that most of the services won't take advantage of the extra resources.

Which services (web server, database, etc) are you using and which versions?
Have you tweaked any of the configurations or did you just install-and-run?
Also, how are you currently measuring "users online simultaneously"?

  • Hello @hansen , thanks for your answer

    Well, I guess that is just HTML+CSS+JS, since I just use the Visual Composer with a JS code to hide the buttons. And I pretend to use external services on the future like Gleam.io, so I think that isn't the major problem. And what type of cache you're talking about?

    When I created some droplets on the past, when trying to resize and upgrade them, they always said that is like turning the server off and that I can lost data on it. So I always be afraid of it.

    About the services, I'm using Apache, Phpmyadmin and PHP 5.5, and the services provided by the host is of the ScaleRight. You can check the specifications on their site https://www.fastcomet.com/ (there's anything more you want to know?).

    Normally I install all these things by myself, but this time I used an 1-click install provided by the host.

    And what I mean with users online simultaneously, is all these users online at the same time on the website, most of them using the features of the Giveaway.

    • @kaioc

      If you are creating it in WordPress, then it's not a static file - it's dynamic, meaning PHP will generate the site each time by connecting to the database.

      You will want to look into caching your WordPress installation, so almost every request will go to a static cache file. There are several ways to cache, but the easiest is probably with a WordPress plugin (examples):
      https://wordpress.org/plugins/w3-total-cache/
      https://wordpress.org/plugins/wp-super-cache/

      You need to shutdown the server before resizing it, true, but if you shutdown via the console using the command sudo poweroff or sudo shutdown, then all services are shutdown in a correct way and you will not lose any data.
      Of course, while the server is offline, then it won't serve any request or get new data, so if you're talking about that, then you need to setup multiple servers to get what is known as high availability.

      You should be running PHP7+, since WordPress is fully compatible with that version and it will run much faster and use less RAM.

      I don't know what ScaleRight is - if it's a service provided by FastComet, then contact their support.

      There's a huge difference between users displaying your site, reading it and filling in data - and then the number of requests per second.
      You only want to focus on requests per second, since that's what really counts, when configuring and tuning your server, since that's the only thing putting a load on the server.

      And with the amount of requests you expect, it's very important to tweak a lot of configuration in Apache (I would still recommend Nginx), PHP and MySQL (I would recommend MariaDB), and then you also need to have cache setup, so as few requests actually hit PHP/MySQL.

      • @hansen

        Well, I already use these Wordpress plugins to cache my website (WP Super Cache), so I think that I'm fine with it, and about the resizing, I didn't know that shutting down via console was the better way without lose any data. Thank you for this! And no, I don't need to get any data or requests, at least for a while, since there's no much traffic there. The website can remain offline for some minutes/hours for it.

        The wordpress installation came with the PHP5.5 on it as default, but I have the option to change to PHP7 with no problems. I'll try it.

        To avoid a lot of headache, I have the option to install the Wordpress via EasyEngine. It came with Nginx, PHP7, Postfix and MySQL Phpmyadmin. And with some cache options, like W3Total Cache, WP Super Cache & Nginx’s FastCGI Cache. But if you think that is better, I can do it manully by myself if needed some specific configurations.

        So, what about Apache/Nginx configurations do you think that I have to tweak? Can you explain it? And Phpmyadmin isn't recommended? For me is easier to use because its interface, but If MariaDB is better and/or more secure, I can use it.

        And one more time, thank you for your reply

@kaioc Just creating a new thread, since it was getting a little narrow.

You need to make sure that most people are getting the static cache file and that no requests are made to WordPress.

I would always recommend setting up your own server manually - specially when you need to be able to serve the amount of requests per second as you've listed.

Nginx could be a replacement for Apache, since it's faster and uses less resources.
MariaDB is a drop-in-replacement of MySQL, I find it better and not controlled by Oracle.
phpMyAdmin is a tool, not a service, but I would recommend https://www.adminer.org/

To begin with, just configure it, so it works. Then you need to tweak a lot of configurations to be able to handle the number of requests per second as you want.
It's really hard to pin-point specific settings without knowing the full setup - and that's usually something you pay big money for, or host everything on a scalable platform like Google Cloud or Amazon AWS, which will be quite expensive if using a lot of resources.

Have another answer? Share your knowledge.