×
  • Sign In
  • Sign In



    Or sign in with one of these services

  • Sign Up
Jump to content

  • Rhododendron

    Tech Updates #2

    By Rhododendron, in Updates,

    The past few days have been a nightmare for the website server. I will be explaining what exactly happened and the changes that were made.
     
    First, our MySQL server is a monster. It is constantly connected by over 20 game servers that are constantly reading and writing. Given the fact that I setup the server around 3 years ago, it went through some noobish configurations by yours truly before I became knowledgeable about how exactly to run one efficiently. My knowledge of server experience is significantly better than 3 years ago, but there are some things that simply cannot be easily fixed, such the 'mysql' database that stores user information, and configurations about how other servers connect to it. For the past year, it was spamming the error log with hundreds of errors about stuff that simply couldn't be fixed manually, and I was forced to either deal with the constant crashes, time-syncing issues, and mild diarrhea. So I began researching about how to configure our server to function best with our available hardware.
     
    Now don't think I purposefully corrupted the 'mysql' database. It went through 3 significant software upgrades. MySQL 5.4 to MariaDB 5.5 and finally we are on MariaDB 10.0.7. While I did the conversion right, a vanilla installation would have been better but I put it off for some time.
    So what exactly happened earlier this week that resulted in the MySQL server going down? Well there was an extremely cryptic error, and the only decipherable thing was that that a table in the 'mysql' database magically disappeared. The error logs started being spammed uncontrollably to the point where it got to 300Gb in size. This resulted in a time-syncing issue with InnoDB and everything went downhill from there. Since I take backups of the entire MySQL server every 3 hours, it's very easy to restore a backup. So I decided to shut down the server and restore the backups, but the errors were still spamming and the issues were still happening. So I decided to completely uninstall the MariaDB server, and reinstall it completely. The only thing that remained from the old server were the user login information for all the users and the white-listed IPs. I also decided to completely revamp the format of the server after reading this article: Yoshinori Matsunobu's blog: Tables on SSD, Redo/Binlog/SYSTEM-tablespace on HDD on the benefits of SSDs and HDDs in accordance with MySQL. After this, I restored all the backups and brought up the server. The difference was tremendous. Zero errors have been recorded since the reinstallation, and all pages are loading on average under 100ms which is insane for a site like ours, with tons of images and custom content. Overall the changes were incredibly significant and everything should so smooth from here with our MySQL server.
     
    Finally, what happened to the website and why are some people unable to load it?
     
    Well our website was using Incapsula as a CDN and DNS management service, mainly for a cheap SSL wildcard certificate (purchasing one costs ~$300 a year which is out of our price range) to allow secure browsing on the website. Last month our traffic was insane (the attacks against NFO might have caused this but I have yet to find the exact issue) and was roughly 2.7 TB. The Incapsula bill came earlier this month and the bill was $450.20. I immediately contacted support since that seemed like some strange glitch (we are on the $19 per month plan) but was told that the 'Personal' plan has a bandwidth cap of 500GB per month, as well as a rate of 5mbps of fair usage. This confused me since when I signed up, their plan page mentions none of this whatsoever. After asking about the lack of information provided about the bandwidth cap, they told me that they recently updated their plans (without changing the plans page) with these bandwidth limitations, and that legacy plans would have to be manually updated. One of the sales team then contacted me, credited our account with the money, and told us that we would have to upgrade to the Enterprise plan if our bandwidth was to continue being ~2.7TB a month. The Enterprise plan is $1,100 a month and since Xeno Gamers isn't a commercial business, I respectfully decided to switch services back to CloudFlare since they have an unlimited bandwidth cap (their SSL plan is more limited but it wouldn't effect our current setup). This required updating the nameservers over to CloudFlare's, which would result in an extremely heavy DNS change. It normally takes 24-72 hours to finish (it's the internet, nobody controls when it updates) so that's the reason there might have been some server crashing and website unavailability. Again, if you were unable to access the website it wasn't my fault and is a waiting game from here on out.
     
    Other updates:
    - CentOS 6.5 released, updated website server.
    - NginX 1.5.8 released, updated webserver.
    - ngx_pagespeed v1.7.30.2 beta released, updated webserver.
    - OpenSSL v1.0.1e package released officially with CentOS 6.5, compiled custom version with 'Elliptic Curve' enabled.
    - NginX SSL protocol changed to use 'Elliptic Curve', page loading significantly faster over SSL.
    - ErLang updated, Elixir updated, allowing for the Teamspeak chat bot application to function again.
    - XenForo updated to 1.2.4, various addons updated as well.
    - Various server updates provided by Nomulous, including a new Europe location (managed by Stickz).
    - Revamped user-groups on the forum, now requires assigning moderation powers using the 'Moderator' feature, resulting in far easier management of promotions for users.
    - Re-signed our self-signed SSL certificate to better integrate with CloudFlare.
    - Abandoned 'Axivo' repo in order for self-compiled applications.
    - Heavily revamped 'my.cnf' for better performance including doubling the max connection count (unrelated to the issue described above).
    - Fixed template glitches with 'Xeno Gamers v7'. Will revamp color scheme soon since it's currently unsatisfactory.
    - Fixed permission issues for staff members on the website. Some might still remain so please report them!
    - Teamspeak server updated to 3.0.10.3
     
    That's all for now, and I apologize for all the downtime!

    serbiansnaga
    Promotions:
     
     
    CS:S
     
    Bleed from Member to Moderator
    Speedlimit from Moderator to Administrator
     
    TF2
     
    Nomulous from Moderator to Division Leader
    Goblin from member to Moderator
     
    MC
     
    Lemons from Administrator to Division Manager
     
    Demotions:
     
     
    CS:S
     
    Hellafun from Administrator to Moderator (Inactivity)
    Sep0h from Administrator to Moderator (Inactivity)
    Turdwig from Administrator to Member (Not wearing tags, insubordination)
    Warriorsfury from Administrator to Moderator (Inactivity)
    Jings from Moderator to Member (Inactivity)
    Kona309 from Moderator to Member (Inactivity)
    Nub from Moderator to Member (Inactivity)
     
     
    Congratulations to those who were promoted this Promo/Demo! This is a reminder to those who have newly gained access as a Moderator to leave your STEAM IDs posted below in the comment(s) section below to ensure the distribution of powers as soon as possible.
     
    That's it for this set guys, have a wonderful New Year!

    serbiansnaga
    Promotions:


     
    CS:S
     
    Dr. Lee from Member to Moderator
     
     

    Demotions:


     
    CS:S
     
    Diabeetus from Admin to Moderator (Inactivity)
    Mr. Awesome from Moderator to Member (Inactivity)
    Gkoo from Division Manager to Member (Gkoo.)
     
     
    Congratulations to those who were promoted this Promo/Demo! This is a reminder to those who have newly gained access as a Moderator to leave your STEAM IDs posted below in the comment(s) section below to ensure the distribution of powers as soon as possible.

    serbiansnaga
    Promotions:



     
    Cookie from CS:S Moderator to CS:S Administrator
    Matsi from CS:S Moderator to CS:S Administrator
     
     
    Lemons from MC Moderator to MC Admin
    Kirito from Member to MC Mod (happy? @@Uryuu_Minene )
     
     
    ChickenPanda from member to TF2 moderator
    Shockedeel from member to TF2 moderator
     
     

    Demotions:



     
    Nub from CS:S Administrator to CS:S Moderator (Inactive)
    Unit from CS:S Moderator to Member (Inactive)
    Poncher from CS:S Moderator to Member (Still in Jail)
     
     
    Solidsnake from TF2 moderator to member (inactive)
    Kenji from TF2 moderator to member (inactive)
     
    Forest from Co-Leader to Member (Stepped Down. RIP In Peace.)
     
     
    Congratulations to those who were promoted this Promo/Demo! This is a reminder to those who have newly gained access as a Moderator to leave your STEAM IDs posted below in the comment(s) section below to ensure the distribution of powers as soon as possible.

    Forest
    Promotions:



    Genesis from CS:S Moderator to CS:S Administrator
    JFK/Odyssey/Haxxx from Member to CS:S Moderator
     
    Miki/Emi/Eucliwood/Kaede/Nyu/Mizore/Nia Teppelin/Reki/Rena/Ryuko Matoi/Yuno Gasai/Yuuki Asuna/Megaramen from Member to GMOD Moderator
    Cristo from Member to GMOD Moderator
     
    African from Member to TF2 moderator
    Malachite from Member to TF2 moderator
    Nomulous from Member to TF2 moderator
    Bell from Member to TF2 moderator
     
    Priggles from Member to MC Moderator
     

    Demotions:


     
    Daddiodoug from CS:S Moderator to Member [Precaution due to Steam account being hacked]
    kona309 from CS:S Moderator to Member [Resigned]
     
     
    Congratulations to those who were promoted this Promo/Demo! This is a reminder to those who have newly gained access as a Moderator to leave your STEAM IDs posted below in the comment(s) section below to ensure the distribution of powers as soon as possible.
     
    Also don't forget to check out /xG/ sings "Spooky Scary Skeletons". (Warning: The video may be too spooky for some to handle). Simply click on the link below to be sent to the thread! Look forward to another occurrence of this event in the future (with a different song of course!)
     


    2Spooky4Me


    Forest
    Promotions:


     
    Sep0h from CS:S Moderator to CS:S Administrator
    Vector from CS:S Moderator to CS:S Administrator/TF2 Moderator
     
    Penguin from CS:GO Moderator to CS:GO Division Manager
    Epix from Member to CS:GO Moderator
     
    Warriorsfury from Member to GMOD Moderator
    Deathgod from Member to GMOD Moderator
    Chrono from Member to GMOD Administrator
     
    Audible_Savage from MC Division Manager to MC Division Leader
     
    RainForest from Active Co-Leader to Pneumonia Patient
     
     

    Demotions:


     
    Payturr from CS:S Moderator to Member [inactive]
    Microsoft from MC Division Leader to Division Manager [stepped down]
     
     
     
    Congratulations to those who were promoted to a higher rank! No new powers have been given out to anyone as a new Staff Member, so there is no need to post a STEAM ID for this Promo/Demo.
     
    With the release of the Dark RP Server, it is understandable that it will receive a lot of attention, but I would like to remind our Staff that they do have certain responsibilities to other Divisions they currently have powers in. This is just a reminder that it is expected from our Staff to respond to a situation should the time call for it. This includes a Member/Non-Member notifying Staff (via the Forum's Shoutbox or by TeamSpeak) that there is a rule breaker currently on the Server. It doesn't take much to log in and address the problem before going back to what you were previously doing.

    Forest
    Alas, another slim picking for this week's Promo/Demo ladies and gentlemen. Hopefully things will pick up soon in the next couple of weeks with our CS:GO Division back!
     

    Promotions:


     
    Shadowspy from CS:S Moderator to CS:S Administrator
    Tiger from Member to CS:S Moderator
     
    TwoZeroFour from Member to TF2 Moderator
    Origins from Member to TF2 Moderator
    HaplessIdiot from TF2 Moderator to TF2 Administrator
     

    Demotions:


     
    Poncher from CS:S Administrator to CS:S Moderator [in prison. Hue.]
    TheAlpha31 from CS:S Moderator to Member [inactive]
    Epix from TF2 Moderator to Member (Stepped down)
     

    Other:



    Penguin from TF2 Moderator to CS:GO Administrator (Swap of powers)
     
    Bleed from Member to Procrastinator
     
     
    This is a reminder to any other CS:GO Staff who had their powers transferred over to the TF2 Servers temporarily: You may choose to have your powers reverted back to CS:GO, or you may remain a Staff Member under the TF2 Division (with the permission of MuffinMonster and Brian). Post in this thread regarding the ---> Swap of Powers <--- stating your case.
     
    For those who were recently promoted, congratulations! Do not forget to leave your STEAM ID in the comment(s) section below to allow distribution of powers as soon as possible.

    Rhododendron

    Tech Updates - #1

    By Rhododendron, in Updates,

    So I'm going to start writing updates on what has changed in the backend, for anyone that's interested.
     
    Website:

    Completely rewrote 'Teamspeak Integration' to use the foreign key feature that InnoDB offers. This allows for a complete hierarchy which makes for less code and faster processing (example, delete a users entry from the main teamspeak table, it deletes them from the log and their statistics. A single query instead of three #ballin)
    Started the conversion process to make the website more appealing with hi-res screens (ie. retina display and OLED screens). This includes switching some of the icons to use FontAwesome, redesigning the division icons into SVGs (InkScape was incredibly helpful doing this, and it's free!), as well as doubling the avatar size (you can upload much larger avatars, including gifs! Please re-upload your avatar to see this go into effect). Some of the things that required this include:

    - Large from 192px to 384px, Medium from 96px to 192px, Small from 48px to 96px.
    - Apply a hard-fix to the avatar modifier, to support these changes (currently a glitch but it's XFs side and will make a bug report)
    - Future step will be to double steam community avatars to support hi-res displays.

    Added support for the tab button in the editor! Makes everyone's live much easier when copying and pasting text, or just trying to format your stupid messages nicely.
    Layout fix for the articles page. Should look a lot better and more consistent.
    Complete layout overhaul for /xg/ including guests custom names to stay with their posts as well as the inclusion of GET numbers. The numbers are generated from the name and then encoded again to prevent decryption. You will be 100% anonymous to other users.
    Polls are now pie charts. Makes reading them much easier and looks far better.
    Added around 20 new trophies to encourage further forum activity! Check them out here.
    The website theme has been re-purposed and will be modified accordingly for major holidays from now on.
    Many addons updated to their latest versions.
    Rewrote the British algorithm to reflect @@Forest more appropriately.

    Main Server Machines:
    VPS:1:

    Updated the kernel to the newest version provided by RHEL.
    Updated GoLang server to 1.1.2.
    Updated Nginx to 1.5.6.
    Updated PHP, including the process manager, to 5.5.4.
    Switched session storage to Memcached to speed up various tasks that can be performed on the website.
    Increased the amount of child processes in PHP-FPM to handle the increase of website visitations.
    Increased RAMDISK #2 to 1GB to support what comes after this.
    Added caching for the reverse image proxy (CamoGO) that makes images displayable through HTTPS. This means that it will store a hard copy of the image on the server for x amount of minutes to prevent a page from taking way to long to load. It needs a bit of tweaking and I'm still unsure whether or not to make them permanently stored.
    Modified pagespeed and tweaked the settings for better performance.
    Increased Memcached to 1GB of available space.
    Switched APCu to Zend OPCache that's included with PHP 5.5. Better performance galore!
    Fixed the fstab file so mounting on boot actually works with the SSD, as well as modifying rc.local to allow for persistent file systems on the RAMDISKs. So if the VPS crashes, I won't have to be around to rebuild the file systems nor mount the SSD manually. (note that the VPS has never crashed once, I just restart cause Windows corrupted my mind and makes me thing I have to :'( )
    Completely rebuilt the MySQL database and wiped all databases, and rebuilt them from backups. We are seeing much better performance! (the last time I did this was in 2010, and I've learned tons since then so it was desperately needed.)
    Switched the remaining tables in each database to InnoDB since MySQL 5.6 supports full-text searching in InnoDB!
    Increased MySQL's buffer_pool_size for InnoDB to 2GB for better performance, as well as tweaked the query cache for the same reason.
    Rewrote various init.d scripts since they were badly made (I was a noob back then!) probably still am lol
     
    Modified the MySQL backup script to be more aggressive, with backups being made every 3 hours and being kept for a week before being deleted.
    Modified MySQL to utilize the SSD to the fullest, with new features offered in MySQL 5.6. Better performance from this.
    Completely rewrote all the IPTables rules to remove stuff that was added like 3 years ago and probably shouldn't be there.
    Modified Nginx config to better handle DOS attacks.
    Allocated 32GB of ram to handle the British algorithm. We might need some outside help on this one, it's getting expensive.

    The other machines are either managed by NFOServers or by @@Stickz and all I have done with them was modify the firewall rules.
     
    Game Servers:
    CSS:

    Deleted a bunch of servers to allow for more resources being directed to TF2 and CS:GO.
    Removed CallAdmin from everything, it was broken. Thanks @@DarkWolf6052 for figuring this out! Saved my ass!
    Modified Hub to a new version. Progress is getting done!


    TF2:

    Updated the Jailbreak mod with the new API for last requests. Will actually code the last requests when people stop freekilling so much where we never get to them!
    Updated the Deathrun mod to fix minor issues.
    Any feature requests, please post in the respective thread in the TF2 discussions area, or make a thread if it doesn't exist!

    Any other divisions I have zero idea about, and if the respective division leaders would like me to include anything, please let me know!
     
    Well that's it for now, please post about any issues you may be experiencing!

    Forest
    Good golly gum drops, this is a short Promo/Demo list!
     

    Promotions:


     
    MegaRobin from CS:S Administrator to CS:S Division Manager
     
    Lemons from CS:S Moderator to CS:S Administrator
    ItsAaron from Member to CS:S Moderator
     
    African from Member to TF2 Moderator
     

    Demotions:


     
    John from CS:S Division Manager to Member [stepped down]
     
    Malachite/Korodon from TF2 Moderator to Member [stepped down]
     
     
    I don't think I have to ask for STEAM IDs this time fellas, everyone listed here has already given me theirs. Congratulations to those who were promoted!
     
    Don't forget to check out the XenoGamers Lottery thread. A donation of 5$ will not only help XenoGamers, but will also provide you with a "ballot" in which may be drawn during the Drawing with prizes up to 100$! Click on the image below to see the rules as well as to sign up if you are interested!

    Forest
    Promotions:


     
    Chrono from Member to GMOD Moderator
    mtown from Member to GMOD Moderator
    Bleed From Baddie to Clan Baddie
     
    Travtman from Member to TF2 Moderator
    Drendan from Member to TF2 Moderator
    Volt from Member to TF2 Moderator (Transferred from CS:GO)
    Penguin from Member to TF2 Moderator (Transferred from CS:GO)
     
    Lemons from Member to MC Moderator
    DMTwired from Member to MC Moderator
     

    Demotions:


     
    KBShooter from CS:S Moderator to Member (Inactive)
    CyanNoVa from CS:S Moderator to Member (Inactive)
    Sarcast1cNinja from CS:S moderator to Member (Inactive)
    LostCause from CS:S Moderator to Member (Stepped down)
    SyrJirk from CS:S Moderator to Non-Member (Left)
     
    Gawd from GMOD Administrator to Moderator (Inactive)
    Cloud from GMOD Administrator to Non-Member (Left)
     
    African from TF2 Administrator to Member (Immaturity, caught Sharking, deemed unfit for the position)
     
    Congratulations to those who have been promoted to a new rank! Remember to post your STEAM ID in the comments section below so that powers may be distributed as soon as possible.
     
    In a tight spot (money wise)? Enjoy playing on XenoGamers Servers, or just enjoy the community? Now is the time for you to contribute back to the community while also receiving the chance to win a cash prize of up to 100.00$!! Simply click on the image below (provided by Microsoft) to learn more on how you can help out the community as well as possibly win cash!
     

    [attach]6002[/ATTACH]