Quality DDoS Protected Server Providers ?

We are a medium sized game hosting company, primarily dealing with Minecraft servers. We’re looking to add DDoS protected services to our Minecraft hosting portfolio. We’ve looked around for quality hosts (even in the offers section) that offer DDoS protection.

ust not sure which hosts would be trustworthy for these types of services. We only want to use the best quality with the best support.

Intel E5 Processor (2 quad or one hex)
32 GB DDR3 or DDR4 RAM
Offers wide range of SSD and HDD options
Do you know about legionbox.com servers?
Any recommendations?

.(tagsToTranslate)webmaster forum(t)internet marketing(t)search engine optimization(t)web designing(t)seo(t)ppc(t)affiliate marketing(t)search engine marketing(t)web hosting(t)domain name(t)social media

performance – C++ Thread Server: Thread control & management

So I created a thread server that creates threads and associates them with a handle so that you can keep specific threads for specific tasks e.g. run all graphics rendering on thread 0, run physics stepping on thread 1 and use thread 2 for downloading a file of the internet etc. Personally I’ve found it useful in a project of mine and I highly prefer this to a typical job system where you don’t have any control over what thread the task is executed on.

I’d like to know what room for improvement there is, especially in optimization and whether or not you think the overhead is justified.

Each thread executes tasks in a task queue, so I made a Thread_Safe_Queue which is just a wrapper for std::queue but with a mutex before and read/writes:

template<typename T>
struct Thread_Safe_Queue {
    Thread_Safe_Queue() = default;

    Thread_Safe_Queue(Thread_Safe_Queue<T>&& other) noexcept {
        std::lock_guard<std::mutex> lock(mutex);
        queue = std::move(other.queue);
    Thread_Safe_Queue(const Thread_Safe_Queue<T>& other) {
        std::lock_guard<std::mutex> lock(mutex);
        queue = other.queue;

    virtual ~Thread_Safe_Queue() { }

    size_t size() const {
        std::lock_guard<std::mutex> lock(mutex);
        return queue.size();

    std::optional<T> pop() {
        std::lock_guard<std::mutex> lock(mutex);
        if (queue.empty()) {
            return {};
        T tmp = queue.front();
        return tmp;

    std::optional<T> front() {
        std::lock_guard<std::mutex> lock(mutex);
        if (queue.empty()) {
            return {};
        return queue.front();

    void push(const T &item) {
        std::lock_guard<std::mutex> lock(mutex);

    bool empty() const {
        std::lock_guard<std::mutex> lock(mutex);
        return queue.empty();

    void clear() {
        std::lock_guard<std::mutex> lock(mutex);
        queue = std::queue<T>();

    std::queue<T> queue;
    mutable std::mutex mutex;


#include "thread_safe_queue.h"

#include <thread>
#include <functional>

typedef unsigned int thread_id_t;
constexpr thread_id_t NULL_THREAD = (thread_id_t)0 - (thread_id_t)1;

typedef std::function<void()> Thread_Task;

struct Thread_Context {
    Thread_Safe_Queue<Thread_Task> task_queue;
    bool pause;
    bool kill = false;
    bool dead = false;

struct Thread_Server {
    thread_id_t make_thread(bool start = true);

    void pause_thread(thread_id_t tid);
    void start_thread(thread_id_t tid);

    void kill_thread(thread_id_t tid);

    void queue_task(thread_id_t tid, const Thread_Task& task);

    void wait_for_thread(thread_id_t tid);

    bool is_thread_busy(thread_id_t tid);

    std::vector<Thread_Context> _thread_contexts; 


#include "thread_server.h"

void work(thread_id_t tid, std::vector<Thread_Context>* pcontexts) {
    auto& contexts = *pcontexts;
    while (!contexts(tid).kill) {
        while (contexts(tid).pause);
        auto cmd = contexts(tid).task_queue.front();
        if (cmd.has_value()) {
    contexts(tid).dead = true;

Thread_Server::Thread_Server() {

Thread_Server::~Thread_Server() {
    for (int i = 0; i < _thread_contexts.size(); i++) {
        _thread_contexts(i).kill = true;

thread_id_t Thread_Server::make_thread(bool start) {
    thread_id_t tid = NULL_THREAD;
    for (thread_id_t i = 0; i < _thread_contexts.size(); i++) {
        if (_thread_contexts(i).dead) {
            _thread_contexts(i).dead = false;
            _thread_contexts(i).kill = false;
            _thread_contexts(i).pause = !start;
            tid = i;
    if (tid == NULL_THREAD) {
        tid = (thread_id_t)_thread_contexts.size();
        Thread_Context ctx;
        ctx.pause = !start;

    std::thread(work, tid, &_thread_contexts).detach();
    return tid;

void Thread_Server::pause_thread(thread_id_t tid) {
    _thread_contexts(tid).pause = true;

void Thread_Server::start_thread(thread_id_t tid) {
    _thread_contexts(tid).pause = false;

void Thread_Server::kill_thread(thread_id_t tid) {
    _thread_contexts(tid).kill = true;

void Thread_Server::queue_task(thread_id_t tid, const Thread_Task& task) {
    auto& ctx = _thread_contexts(tid);

void Thread_Server::wait_for_thread(thread_id_t tid) {
    auto& ctx = _thread_contexts(tid);
    while (ctx.task_queue.size() > 0);

bool Thread_Server::is_thread_busy(thread_id_t tid) {
    return _thread_contexts(tid).task_queue.size() > 0;

As you can see there are also functions to pause/start/kill and wait for a specific thread. This can be used to sync threads and wait for return values etc.

As a use case example, you could have one thread for rendering a loading symbol until another thread is finished e.g. downloading a file from the internet and then using the downloaded file:

void update() {

    if (want_to_download_something) {
        thread_server.queue_task(download_thread, (url)() {
            download_result = download(url);

    if (thread_server.is_thread_busy(download_thread)) {
        render_loading_icon("Downloading file");
    } else if (download_result) {

And here’s a quick test to make sure it’s working correctly:

#include <iostream>

#include "thread_server.h"

int main()
    Thread_Server thread_server;
    auto t1 = thread_server.make_thread();
    auto t2 = thread_server.make_thread();
    auto t3 = thread_server.make_thread();

    for (int i = 0; i < 10; i++) {
        thread_server.queue_task(t1, ()() {
            std::cout << "nHello from thread 1 (std::this_thread::get_id(): " << std::this_thread::get_id() << " )n";

        thread_server.queue_task(t2, ()() {
            std::cout << "nHello from thread 2 (std::this_thread::get_id(): " << std::this_thread::get_id() << " )n";

        thread_server.queue_task(t3, ()() {
            std::cout << "nHello from thread 3 (std::this_thread::get_id(): " << std::this_thread::get_id() << " )n";


Edit: I’m fairly new to multithreading so if you have anything to say about the safety of my code I’ll be more than glad to hear it.

linux – Uneven processor usage on a Multi core Postgre SQL server

We have a dedicated server running Postgres 12 database with this configuration:

Model: HPE ProLiant DL580 Gen9
CPUs: 4*Intel(R) Xeon(R) CPU E7-4850 v3 @ 2.20GHz
Ram: 128 GB
Ubuntu 18.04.4 LTS
Postgre SQL 12

The problem is that the CPU usage never reach 50%. When I checked ZABBIX logs found out when CPU usage becomes more than 40% COU Softirq time increases as you see:

enter image description here

When I checked PRTG Logs, saw something weird; The utilization of some CPUs are up to 80% but most of them are less than 20.

enter image description here

What’s happenning here? How can I use all of my CPUs?

ASP.NET 4.8 Feature unavailable in IIS 8.5 (Windows Server 2012 R2)

Windows Server 2012 R2, IIS 8.5, .NET 4.8 is installed (verified via the Registry, see screen-shot).

On my Windows 10 machine, I see the option to select the ASP.NET 4.8 feature from the “Turn Windows Features on or off” dialog. However, in the Add Server Role wizard on Windows 2012 R2, I only see ASP.NET 4.5 option listed. See screen-shot for comparison.

My question: Is that normal for Windows Server 2012 R2 to only show an ASP.NET 4.5 option? Even if a higher version of the .NET Framework (e.g. 4.8) is installed?

.NET Framework 4.8 is installed

Feature Comparison side-by-side

php – Linux Ubuntu 18.04 and Apache2 server configuration tips for websites

I looked a lot on the internet but I didn’t find any article so relevant or that explained how to properly configure a Linux server for PHP site.

I have a lot of doubt and I want to know if I’m on the right track.
Every part of configuration I’ve done and I already have the website available and running: Linux Ubuntu 18.04, Apache2, MySQL and PHP 7.4

My main question and if it leaves something behind that could affect the server’s performance among other things.

The first question is: Are the following modules really necessary?
(before you ask me, I compared the installation of another server and saw that in my modules these are not available so I was in doubt)


Another doubt, is installing ufw really necessary? (ps. I don’t want external connections on my server, just access to the website)

I think I want to be as safe as possible.

If anyone wants to view the complete PHP settings just access this link:


SQL Server user/roll backup – Database Administrators Stack Exchange

I’m trying to figure out how to backup the users, roles, and what permissions they have on a SQL Server instance. I need to be able to restore the users, roles, and permissions without changing anything else (so backing up the entire database is out). I’m not trying to figure out what permissions are required to be able to make a backup, or restore one.

The reason I’m looking into this:

I need my QA environment to retain it’s current users, roles, and permissions. I also need to refresh the QA instance (data and objects) based on my prod instance. Our QA team has some elevated permissions that we don’t want them to lose after the QA environment is refreshed. The elevated permissions are not documented, and the person who granted them is no longer with the organization. Nobody is confident that we know what they all are.

WinlyHost -:- Cyber Monday Sale On France Dedicated Server | Proxies-free


WinlyHost offers you a great discount on France Dedicated Server, Please don’t miss the offer, grab it before expire.

Please Find Promo Code Below

Promo code is already applied in below servers

Atom C2350 1.7 GHz 2 cores 4GB DDR3 1× 120GB SSD 1Gbit* Unmetered* €14.99/mo
Atom C2350 1.7 GHz 2 cores 4GB DDR3 1× 1TB SATA 1Gbit* Unmetered* €14.99/mo

( 15% Recurring Discount )

Atom C2750 2.4GHz 8cores 16GB DDR3 1×250GB SSD 1Gbit* Unmetered* €34.99/mo
Promo Code : 91J7FXA8OL
Atom C2750 2.4GHz 8cores 16GB DDR3 1×1TB SATA 1Gbit* Unmetered* €34.99/mo Promo Code : 91J7FXA8OL ORDER

( 20% Recurring Discount )

Xeon E3-1220 3.1GHz 4cores 16GB DDR3 2×2TB SATA 1Gbit* Unmetered* €44.99/mo Promo Code : DYM6G488KF ORDER
Xeon E3-1220 3.1GHz 4cores 16GB DDR3 2×450GB SAS 1Gbit* Unmetered* €44.99/mo
Promo Code : DYM6G488KF

( 20% Recurring Discount )

Xeon E5-1410v2 2.8GHz 4cores 64GB DDR3 2×2TB SATA 1Gbit* Unmetered* €84.99/mo
Promo Code : JNQR0J238A

Please contact us if you have any query.

NOTE : For affiliate partners, we won’t give commission on the above server mentioned.

Skype | Whatsapp | E-Mail


cPanel Server Management starts 25$ – eTechSupport.net – Hosting, VPN, Proxies


eTechSupport Server Monitoring & Management service is ideal for web hosting companies needing to focus more on sales and grow their client base rather than juggling with webserver tasks. This service covers every aspect of your server to ensure maximum uptime and reliability for your website and customers. Our team remotely handles all of your server technical issues involving configuration, optimization, security – all bundled with 24/7 server monitoring.

By hiring a professional service provider like eTechSupport to take care of your Linux/Windows servers round the clock, you leave those hassles to us and can fully concentrate on your business growth. With round-the-clock service, you can get in touch with a server administrator even through instant messengers as we would not want you to worry about submitting tickets in case of emergencies.



  • 24×7 Server Management

  • 15-minute Emergency Response
  • Server Log Analysis
  • Control Panel Updates & Server Patches
  • Cross Browser and Platform Testing
  • Initial Server Optimization
  • Nameserver and DNS Management
  • cPanel Server Management
  • Web Services Monitoring – HTTP, HTTPS & FTP
  • 24×7 Server Monitoring
  • Standard Server Software Updates
  • Complete Hosting Support
  • Performance Tuning
  • Scheduled Maintenance
  • Hardware Failure Restoration
  • Server Administration Tickets
  • Installation of 3rd party software
  • Kernel Upgrades

For more info, visit our cPanel Server Management Page and Ask Discount coupon? FILL OUT THIS FORM

sharepoint server – How to send mail to a person in field newly created by using custom visual studio code

Below is the new field “Requestor” created as shown in the screenshot:
enter image description here

The mail goes to the creator when the workflow is rejected.
The code is as shown below for the workflow:
enter image description here

workflowProperties.OriginatorEmail mail goes to the creator of the item.
But I want the mail to be triggered to the Requestor.

Can someone please help me with this.

Thanks in advance