Librenix
Headlines | Linux | Apps | Coding | BSD | Admin | News
Information for Linux System Administration 

Testing the Digital Ocean $5 Cloud Servers with an MMORPG

Up
vote
Down

I've been working on an space-based MMORPG for a while now and I finally reached a point where the server was largely complete and ready for some load testing. I had done quite a bit of testing on my quad-core Xeon development system with great results. Renting a dedicated box like that one, and with a decent Internet connection would not be cheap, however.

I was curious about Digital Ocean's offerings so I decided to take a couple of their smallest virtual machines for a test run. These 5 dollar/month cloud servers have 512MB of memory, a single virtual CPU, and 20 gigabytes of SSD disk storage. I created the first one, Maelstrom, in one of their New York data centers and the second one, Paradise, in their San Fransico facility. As claimed, each server took just under 60 seconds to deploy.

I made a few customizations to the bare-bones CentOS 6.5 64-bit image that I had selected for both machines. I then ran my personal benchmark package on both. On my 256 megabyte benchmark that emulates a relational database instance, I got about 25% of the performance of one of my Ivy Bridge Xeon cores. This benchmark stresses memory bandwidth, takes advantage of the full range of caches, as well as loading the CPU with integer-only operations.

I consider a fourth of an Ivy Bridge core an excellent result for a $5(US) server! I repeated the tests over the following days and got consistent results varying within a 10 percent range. One thing of note; the SF server consistently performed about 10% faster than the NY server.

Next, I loaded up a million-sector instance of my MMORPG server engine on the NY server and a bundle of testing scripts on the SF machine. The test suite, which emulates 712 concurrent players requires 1424 processes to do that. In retrospect, it wasn't too surprising that I crashed the SF machine as the testing scripts created an urgent demand for far more than 512 MB of memory! My mistake. I suspected that I wasn't going to be able to fully stress the game engine with far fewer emulated players.

But, always the optimist, I set up a gigabyte of swap space on Paradise and tried again. This time the tests ran just fine -- and the SSD-based swap space performed beautifully.

I got an average of 2500 game transactions per second over the duration of the test -- which should be more than enough for my target of 1000 concurrent players per realm. The SF machine used one half of the GB(!) of swap space while running the test scripts and hummed along happily at about 75% busy.

The NY server was fully stressed at about 98% CPU utilization and remained very responsive for the duration of the test.

I'm still running both systems three weeks later and have experienced no reboots or outages so far.

The New York server continues to run my text-based space MMORPG server back-end for game-play testing as the graphical front-end client is developed.
mail this link | permapage | score:9977 | -Ray, May 13, 2014

Nuvola Player: Enjoy all your Cloud music services from one interface

Up
vote
Down

And with tight integration with the Linux desktop (multimedia keys, system tray, media player applets, dock menu, notifications and more), it provides a better user experience when compared to using the same Cloud music services from a Web browser. read more...
permapage | score:9772 | -finid, August 21, 2013

Linux dominates Windows

Up
vote
Down

Linux dominates Windows -- and everything else -- on supercomputers in 2010. Microsoft's renowned engineering quality and down-to-earth pricing shows brilliantly in its capturing 1% of the top 500 supercomputer projects. Perhaps next year, utilizing all the organizational pressure they can bring to bear, they can retain 0.8%.

Formal Unix, now long dead*, controls 4.4%. Meanwhile, Linux is now installed on 91% of the remaining 95% of top systems. Add in the single BSD system and you have Unix-like systems (Unix+Linux+BSD) accounting for 95.6% of the top supercomputer projects. The remaining 3.4% of are 'mixed' systems and may also contain significant percentages of Unix and Linux.

There are many reasons for Linux' success. Among the top factors are surely these four, in no particular order:
  • Price (starting at free)
  • Quality (excellent code, Unix-based design)
  • Hardware Support (most all modern quality gear is supported)
  • Open Source (open to tinkering -- and redistributable)
Check my math on the top 500 systems here.

*Of course, counting functional Unix systems while ignoring the trademarked term, Unix is clearly not dead since Linux is one of the truest of the true Unix work-alike systems. Linux is, of course, the reason formal Unix has suffered such a precipitous decline. Many Unix users just switched flavors -- and Linux was a most appealing flavor.
mail this link | permapage | score:9746 | -Ray, June 2, 2010

Apple DIY Repair

Up
vote
Down

I won't be buying any more Apple products. Here's why:

I'm generally capable of repairing my own equipment and can recognize when self-repair has been deliberately undermined. I recently had to replace a hard drive in an early generation white Intel iMac. Innocently, I believed the interior was accessible and serviceable in the manner of the externally identical white PowerPC iMacs.

No such luck. Not only do you have to remove the LCD to get to the hard drive, but you must also remove shielding around the LCD -- mostly by tearing it to bits. No doubt it is attached this way so that an authorized Apple technician will be able to confidently void your warranty if you've ever worked on the system yourself.

You'll also need a #10 torx magnetic screwdriver. And, no, #10 torx bits just won't do due to the narrow and deeply recessed screw holes. Also, since most torx screwdrivers aren't magnetic, you'll probably need to tape the screws to the screwdriver to reattach the LCD. Good thing there's a hardware store near you.

Oh, and don't forget to pick up some rubber cement to 'properly' reattach the hard drive temperature sensor while you're out looking for magnetic torx screwdrivers.

Considering the logical design of its predecessor and the tamper-evident shielding, I'm certain that this machine has been deliberately designed to prevent the owner from performing DIY upgrades and repairs.

While that is all quite annoying, at least working on the system is possible for someone with experience and determination.

Now, Apple has improved their anti-customer techniques with the 'Pentalobe' screw. It doesn't solve any problem but one: it'll keep customers from even being able to open the case.

If you're curious about Apple's evil new invention, you can read its rap sheet and view its mug shot here.
mail this link | permapage | score:9733 | -Ray, January 25, 2011

Alternative operating systems

Up
vote
Down

The ten best alternative OSes, none of which are from Microsof or Apple, nor are any based on Linux. Operating systems covered are:
  • GNU/HURD (RMS' never-quite-done free OS, predates Linux(!))
  • JNode (written in Java)
  • FreeVMS (DEC's famous VMS)
  • DexOS (tiny, console-like GUI)
  • Inferno (distributed, device-sharing)
  • KolibriOS (MenuetOS fork, tiny, written in Assembly)
  • OpenBSD (a BSD variant specializing in security, correctness)
  • AROS (Amiga Research Operating System )
  • ReactOS (Windows clone)
  • Haiku (BeOS clone)
From the article:
Big companies can grow reticent to change, slow to move and adopt new technologies. Features must be escalated through approval bodies, management and bean-counters. Hobbyist projects don't have those commercial pressures and can experiment freely.

It might seem audacious to claim that the next Windows is cooking in some part-time coder's house, but it's nothing new. Microsoft's OS empire started with the purchase of QDOS, which stood for 'Quick and Dirty Operating System'. Apple didn't create Mac OS X out of thin air, but took an open source kernel and some BSD code (grounded in academia) to get the foundations of its operating system working.
read more...
mail this link | permapage | score:9707 | -Ray, March 16, 2011

System monitoring: Icinga, Nagios, and Opsview

Up
vote
Down

Three open-source system monitoring software packages, two of which are derived from Nagios...
If in your work you are responsible for just one server, you will surely wonder: What is the best way to get the situation under control?

In the world there are good open source software that allow you to monitor the status of servers, services and programs.

In this article we’ll see an overview some of the softwares in this category, and in particular some related to Nagios...
read more...
mail this link | permapage | score:9635 | -Ray, March 24, 2011

Linux file manager comparison review

Up
vote
Down

Reviewing and rating six of the best Linux file managers...
The litmus test for any file manager, then, is its ability to manage large numbers of files efficiently, and this is one of the two main criteria for the applications in this roundup. Our other primary concern is advocacy. Could each file manager here help convince inexperienced Linux users that the OS can be either familiar and easy to use, or different in that it's much more flexible than what they've previously experienced?
read more...
mail this link | permapage | score:9632 | -Ray, April 20, 2011

VPS: Xen vs. OpenVZ

Up
vote
Down

This is a short overview of the key differences between OpenVZ and Xen that you might consider when choosing a VPS. Note that this article is based on my opinions and that you must do your own research to determine which, if either, technology is best for you and your application.

First, some terminology. OpenVZ isn't fully virtualized and could be more properly referred to as a 'container', not a VPS. That shouldn't affect your choice. It's the technical differences that matter.

Cheap VPS offers are everywhere lately, it seems. However, upon closer inspection I saw that almost all of the low-priced offers were for OpenVZ. While both Xen and OpenVZ offer their advantages, I chose Xen. So, there's my first bias, right up front. :)

OpenVZ advantages:

  • Efficient (fast)
OpenVZ disadvantages:
  • Shared kernel (no custom kernel)
  • Shared memory with other users
  • Vendor can easily oversell, killing performance
Xen advantages:
  • Dedicated memory
  • fully virtualized (can run other kernels or even OS's)
  • vendor more limited in overselling
Xen disadvantages
  • Less efficient (more overhead due to a kernel-per-VPS)

You'll notice I left price out of the above comparison. In theory, there should be a small price advantage for OpenVZ. I don't know how big it should be but it pertains to two things: 1) Xen uses more memory due to each VPS having its own kernel, and 2) Xen uses more CPU, also due to the additional software layer required to virtualize the kernel.

In practice, however, the price gap appears larger than the above technical differences suggest it should be. I think the remainder of OpenVZ's price advantage is based on 1) the ability for a vendor to easily oversell OpenVZ, and 2) The price competition that results from some vendors overselling OpenVZ.

OpenVZ doesn't encapsulate its containers into a fixed amount of memory, so it runs processes in the host environment to monitor memory usage and kill processes as a container allocates more than its assigned amount.

As a result of this difference, loading down an OpenVZ container is problematic. To partially offset this disadvantage, most OpenVZ vendors offer 'burst' memory in addition to 'dedicated' memory. That is, the monitor process is set to allow the container to use more than its allocated memory -- for a short period of time. This messy situation results in a potentially unreliable environment as some of your processes may be arbitrarily killed -- at the busiest times.

Xen, on the other hand, allows the use of a swap space and excess memory allocation results in (hopefully) idle segments being rolled out to the swap area. While this is good for the memory-hungry VPS user, it can consume significant I/O capacity when memory is overallocated to the point of busy segments getting swapped out. This is bad for everyone sharing the underlying hardware.

I see Xen as clearly the superior technology. A Xen VPS feels and behaves more like a dedicated server. However, I still would have purchased OpenVZ at some price difference. After a bit of research, however, I located Xen VPS's at practically the same price as the cheapest OpenVZ containers. That made my decision easy.

With that said, keep in mind that a bad hosting vendor can ruin either technology through various means. Both technologies share the disk drives and I/O paths as well as the processor cores. Hardware can be poorly configured and managed in any case. A reputable vendor is probably the single most important consideration in choosing a virtual server.

Lastly, carefully check the 'allowed use' policy. Make sure your application is allowed on the server you intend to purchase. Note that due to their different characteristics, the allowed use policy may differ between OpenVZ and Xen for the same host. Also, it's good to understand the memory usage characteristics of your applications. If you know how much memory/swap they require on a physical system, it'll probably work with that same amount of memory/swap on Xen.

[I'll post a review shortly of my current VPS vendor and I will then add a link to that article here.]

mail this link | permapage | score:9627 | -Ray, June 13, 2011

Currency Traders on Raspberry Pi

Up
vote
Down

You can now run Currency Traders on your Raspberry Pi. It is extremely efficient and takes only about 2.2% of the memory of a 512MB RPi and less than 0.5% of the CPU. More CPU will be consumed when players are online, of course, but it should support up to a hundred or so concurrent players on a normally clocked Pi.

The installation is four quick steps, described in the readme.txt file. The entire system is a single binary, available either dynamically linked or statically linked. The static version should work on most any Pi running most any Linux. The dynamically-linked version was compiled and tested on Raspbian Wheezy and may work without library fiddling on other Pi Linuxes. [links removed]
read more...
mail this link | permapage | score:9612 | -Ray, March 3, 2013 (Updated: May 13, 2014)

Tutorial: Linux game programming with Ogre 3D

Up
vote
Down

This tutorial starts at the beginning with opening a window...
This tutorial series steps you through the process of creating a 3D shoot'em'up game using the popular and powerful Ogre 3D engine. The tutorials compile on both Windows and Linux.
read more...
permapage | score:9609 | -Ray, January 1, 2010

Currency Traders Telnet Game

Up
vote
Down

A new, large Currency Traders game is up. To connect enter the following command from an xterm, konsole, or other terminal/command line window:

[link removed]

It runs on port 23, just like traditional telnet. It's free to play and no software is required to play. All you need is an internet connection.

This is an old-school, no-graphics strategy game. All you need is a telnet client to play -- and every modern operating system comes with one. It's free and you can play anonymously. Just choose a name and a password and log in. If you don't know what to do, just press your H key for a Hint and a context-sensitive Tip.

This game is played in a persistent world where whatever you build, buy, or otherwise 'acquire' in the game will still be there tomorrow. Unless you make an enemy of another player, that is. PVP (player-versus-player) is always enabled here so other players can attack your deployed fortifications -- or even, heaven forbid, you.

This is a turn-based game that can be played any time of the day, night, or week. Each player is issued a certain amount of energy (turns) per day that is used to travel, trade, or play at the arcade in the several Malls. If you don't use your turns, they accumulate for as much as several months -- so there's no disadvantage to skipping a day or even a few weeks.


(Try the [read more] link if you want to see something similar, a text-based mmorpg)
read more...
mail this link | permapage | score:9608 | -Ray, January 23, 2013 (Updated: May 13, 2014)

The best lightweight Linux

Up
vote
Down

A subjective assessment of several leading small-footprint Linux distributions...
In selecting our shortlist, we've left out some contenders either because they didn't support older processors, they wouldn't install in 4GB or less of space, they simply didn't work on our hardware or they're no longer being maintained (as is the case for both RULE and U-Lite). The one exception to this is Damn Small Linux - although it has been over a year since the last release, and the homepage is as quiet as the LXF office at 9.30 on a Monday morning, this is still such a widely used and influential project that it was considered worthy of inclusion.
read more...
mail this link | permapage | score:9593 | -Ray, April 11, 2010

How to install Ubuntu Linux on the decTOP SFF computer

Up
vote
Down

I recently bought a decTOP small form factor (SFF) computer. My goal was to build a cheap, fanless, quiet, and low power consumption Linux server. For $99 plus the cheapest available shipping, $40, my machine arrived 11 days after I placed the order.

This is a tiny computer, about the size of a Mac Mini. But, because it has no fan, it runs a bit quieter and, with the help of a 1-watt, 366 MHz CPU, consumes only 8 watts. For comparison, the G4 Mac Mini consumes about 20-30 watts, depending on load.

The decTOP comes with 128 MB of RAM in its sole SO-DIMM slot and a 10 GB 3.5 inch hard drive. I understand that it's a simple matter to replace the drive and to upgrade the memory to a maximum of 512MB.

It also comes with no operating system and the ability to boot only from a USB drive. This article details the steps I used to build the USB boot/installation drive and install Ubuntu 6.06 on the decTOP.

There is another article -- with additional decTOP links -- here on installing Ubuntu 6.06 on the decTOP with the aid of a Windows system. Fortunately ;), I run Mac OS X and Linux (Ubuntu 7.04), so that article didn't work for me. I did the installation of the Ubuntu 6.06 LTS Server Edition using my Ubuntu Linux box and a 1 GB USB flash drive -- although a 512 MB USB drive should work as well.

  1. Download the Ubuntu 6.06 server ISO image from the Ubuntu download page. Depending on your plans for the decTOP, you might want to choose the desktop version. Unless you have already upgraded your decTOP's memory, however, you'll want to stick with the 6.06 releases.

  2. Install the mbr, mtools, and syslinux packages on the Linux system you'll be using to prepare the USB drive. If you run Ubuntu or some other Debian-derived system, the following commands may do the work for you.
    apt-get install mbr
    apt-get install mtools
    apt-get install syslinux
  3. Partition the USB drive with a single FAT-16 partition. I used the fdisk 'n' command to make the new primary partition 1. The fdisk 't' command can be used to change the partition type to FAT-16. My device name was /dev/sda.
    fdisk /dev/sda
  4. Make the FAT-16 partition the active partition. I used the fdisk 'a' command.

  5. Install a master boot record on the USB drive.
    install-mbr /dev/sda
  6. Install syslinux on the USB drive. Note that the USB drive should not be mounted when you do this.
    syslinux -s /dev/sda1
  7. Create a mountpoint and mount the ubuntu ISO image using the loopback device.
    mkdir /iso
    mount -o loop -t iso9660 ubuntu.iso /iso
  8. Create a mountpoint and mount the USB flash drive.
    mkdir /usb
    mount /dev/sda1 /usb
  9. Copy the contents of the ISO image to the USB drive. This will take some time.
    cd /iso
    cp -r . /usb/
  10. Copy the /usb/dists/dapper directory into a new /usb/dists/stable directory.
    cd /usb/dists/
    cp -r dapper/* stable
  11. Copy several files from /usb/install to the /usb root directory.
    cp /usb/install/vmlinuz /usb/
    cp /usb/install/mt86plus /usb/
    cp /usb/install/initrd.gz /usb/
  12. Install the following text into a file named syslinux.cfg in the /usb root directory.
    default vmlinuz
    append initrd=initrd.gz ramdisk_size=24000 root=/dev/ram rw
  13. Flush all writes, unmount, and remove the USB drive. After the sync step, wait for all of the data to be written to the USB drive.
    sync;sync
    umount /usb
  14. Connect the ethernet adapter to the decTOP and connect it to your network to allow automatic configuration of the network interface.

  15. Insert the USB drive into the decTOP and power it up. The decTOP should automatically boot from the USB drive and start the Ubuntu installation.

  16. Answer only the first two questions concerning language selection and go to the next step, below.

  17. Press Alt-F2 (hold down the Alt key and press the F2 function key) to open a shell. Then press enter to start the shell.

  18. Create a /cdrom and a /dev/cdroms directory in the installation ramdisk
    mkdir /cdrom /dev/cdroms
  19. Go to the /dev/cdroms directory and build a symlink from /dev/sda1 (that is likely the device name of your USB boot partition) to /dev/cdroms/cdrom0.
    cd /dev/cdroms
    ln -s ../sda1/cdrom0
  20. While still in the shell, mount the USB drive to mimic an installation CD-ROM.
    mount -t vfat /dev/cdroms/cdrom0 /cdrom
  21. Return to the installation program with Alt-F1 and continue the installation.

From this point, the process should be identical to a routine CD-ROM installation.

For a grand total of $140 and 8 watts of power consumption, I now have a near-silent Linux server running 24/7. You can telnet to it here and marvel at its blinding speed running a 250,000-sector Space Tyrant game.

mail this link | permapage | score:9578 | -Ray, August 16, 2007 (Updated: April 26, 2011)

perl1line.txt: A handy Perl script collection

Up
vote
Down

The ultimate goal of the Perl One-Liners Explained article series was to release the perl1line.txt file. Last week I finished the series and now I am happy to announce perl1line.txt - a collection of handy Perl one-liner scripts.

The perl1line.txt file contains over a hundred short Perl one-line scripts for various text processing tasks. The file processing tasks include: changing file spacing, numbering lines, doing calculations, creating strings and arrays, converting and substituting text, selective printing and deleting of certain lines and text filtering and modifications through regular expressions.

The latest version of perl1line.txt is always at:
http://www.catonmat.net/download/perl1line.txt
Enjoy! It took me over 3 years to write all the one-liners down. read more...
mail this link | permapage | score:9573 | -pkrumins, November 21, 2011

Linux Find Command Examples

Up
vote
Down

Fifteen examples of the find command...
Apart from the basic operation of looking for files under a directory structure, you can also perform several practical operations using find command that will make your command line journey easy.

In this article, let us review 15 practical examples of Linux find command that will be very useful to both newbies and experts.
read more...
permapage | score:9567 | -Ray, May 12, 2009

Python Client/Server Tutorial

Up
vote
Down

A tiny Python tutorial...
This application can easily be coded in Python with performance levels of thousands of transactions per second on a desktop PC. Simple sample programs for the server and client sides are listed below, with discussions following
read more...
permapage | score:9554 | -Ray, June 22, 2009

Scripting: Bash Array Tutorial

Up
vote
Down

An excellent introduction to bash arrays including 15 examples...
$ cat arraymanip.sh
#! /bin/bash
Unix[0]='Debian'
Unix[1]='Red hat'
Unix[2]='Ubuntu'
Unix[3]='Suse'

echo ${Unix[1]}

$./arraymanip.sh
Red hat
read more...
permapage | score:9531 | -Ray, June 7, 2010

Top BSD distributions

Up
vote
Down

Here are the top five BSD's...
As some of you may know, Linux is not the only Unix-like operating system available. There are other UNIX derivatives, and one of the most popular among them is called BSD. If you have been to Distrowatch, you will see different BSD distributions listed in there.
read more...
permapage | score:9509 | -Ray, April 5, 2009

Expect Script Examples

Up
vote
Down

Expressions, if statements, for loops, and while loops examples are covered in this mini-tutorial:
This article explains the following in the expect scripting language.
  • Expressions – arithmetic operation
  • if construct in expect
  • looping constructs
read more...
permapage | score:9494 | -Ray, January 21, 2011

Librenix T-Shirts and Coffee Mugs!

Up
vote
Down

For today's example of my (semi)elite C programming skilz, I submit for your inspection the Librenix T-Shirts! Yes, I created the images on these shirts and coffee mugs entirely with C code. While the code isn't up to the standards *cough* of my open source Space Tyrant project, at least the output is colorful and not entirely textual!


click either image to see the T-Shirts, Coffee Mugs, etc.

(If you like the images but don't care for 'librenix' on your shirt, these same styles are available for all 50 US state names as well as with the signs of the zodiac here)

(and here are some modern prints)
mail this link | permapage | score:9491 | -Ray, June 6, 2010 (Updated: May 13, 2014)
More articles...
Buy Fine Art Prints Online

Selected articles

The Real Microsoft Monopoly

Shadow.sh: A simple directory shadowing script for Linux

Linux vs. Windows: Why Linux will win

Closed Source Linux Distribution Launched

Testing the Digital Ocean $5 Cloud Servers with an MMORPG

Hacker Haiku

VPS: Xen vs. OpenVZ

Mono-culture and the .NETwork effect

The Network Computer: An opportunity for Linux

Linux dominates Windows

No, RMS, Linux is not GNU/Linux

Space Tyrant: A multiplayer network game for Linux

Apple DIY Repair

The Supreme Court is wrong on Copyright Case

Librenix T-Shirts and Coffee Mugs!

How to install Ubuntu Linux on the decTOP SFF computer

Space Tyrant: A threaded game server project in C

Apple to Intel move no threat to Linux

Beneficial Computer Viruses

Why Programmers are not Software Engineers

The short life and hard times of a Linux virus

MiniLesson: An introduction to Linux in ten commands

Scripting: A parallel Linux backup script

The life cycle of a programmer

Graffiti Server Download Page

Why software sucks

Tutorial: Introduction to Linux files

Microsoft to push unlicensed users to Linux

Download: Linux 3D Client for Starship Traders

Space Tyrant: Multithreading lessons learned on SMP hardware

Programming Language Tradeoffs: 3GL vs 4GL

Missing the point of the Mac Mini

Space Tyrant: A threaded C game project: First Code

 

Firefox sidebar

Site map

Site info

News feed

Features

Login
(to post)

Search

 
Articles are owned by their authors.   © 2000-2012 Ray Yeargin