Cheap VPS that support FreeBSD, OpenBSD, NetBSD and many more – KVM SSD technology

Since I retire from my old company I don’t have access to FreeBSD server that I manage. I use FreeBSD since version 4.7 till latest version 9.0 (last version when I retire). The only option I do is using VirtualBox.

With less access to server make my memory get weak but I still get my old post here work when I need together with video made. Last week a friend told me about new VPS provider called Vultr that give great deal.


Start from $5/month or you can choose hourly charge you can choose many location available such as Dallas, Chicago, New Jersey, Los Angeles, Seattle, Washington for USA preferred location. Other server location are Amsterdam, London, Frankfurt, Paris, German for Europe vps preferred location or Sydney and Tokyo for Asia consumer (at the of writing I see 14 location available). I hope in future they can add other for Asia, Singapore for example.

vps with 14 location available; support usa, europe and asia region

Operating System

By default Vultr provide two architecture; 32 and 64 bit. Each bit have their own ‘default’ OS like CentOS, Ubuntu, Debian, FreeBSD and Windows. In 64 bit OS section you have ‘custom iso’ section. This section dedicated for other OS that not available on the list. So far I have try install DragonFlyBSD, FreeBSD and OpenBSD and other Linux variant like Slackware, OpenSuse and Fedora using custom iso and working well.


Price scheme also good I my opinion. I can tell my student to do their experiment using this service. They can get more memory with same price as other provide like DigitalOcean (but DO not provide custom iso).

vps default operating system available plus custom iso and snapshot then price option

Custom Iso Service

custom _iso_vps

Vultr provide custom iso that let you use iso with maximum 5192MB in size, that could be DVD size. Very spoiling me and my imagination. I can do my experiment with so many scenario. For example I can deploy linux distribution that specialize in disk management like gparted the followed by install Slackware OS or vice versa start with OS installation then resize the disk with gparted for new swap and more.

Server Type

I see it from benchmark experiment. I can experiment for server recipe that might involve database load balancing, high availability, data server like ftp and multi processor utilization operation.

cheap vps that provide different type of server; performance series, storage series and multicore series

KVM and SSD Technology

I love KVM since I never face problem with it. Using SSD for fast operation and I think I prefer to use VPS than my ‘dedicated’ server that utilize IDE for some work.

Last time I make deposit, the provider match my deposit 1:1. $10 get $10 so I got $20 in my account. Good for one instance for 4 month or I can switch the operating system each month :-)

My friend told me if the provider maybe try to compete with Digital Ocean so they give same price. I don’t care. Competition is good for customer like us. Give more location, good up time and low latency then your customer ‘soul’ is yours ( Mortal Combat ).

Click here to get your box.

MySQL Tuner on FreeBSD 9.2

I just know if mysqltuner is available via ports.

Quick heads up :

# cd /usr/ports/databases/mysqltuner

# make install

# whereis /usr/local/bin/

# /usr/local/bin/

>>  MySQLTuner 1.2.0 – Major Hayden <>
>>  Bug reports, feature requests, and downloads at
>>  Run with ‘–help’ for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:

——– General Statistics ————————————————–
[–] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.34
[OK] Operating on 64-bit architecture

——– Storage Engine Statistics ——————————————-
[–] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[–] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] InnoDB is enabled but isn’t being used
[OK] Total fragmented tables: 0

——– Security Recommendations  ——————————————-
[OK] All database users have passwords assigned

——– Performance Metrics ————————————————-
[–] Up for: 1h 21m 43s (54 q [0.011 qps], 12 conn, TX: 28K, RX: 1K)
[–] Reads / Writes: 84% / 16%
[–] Total buffers: 168.0M global + 2.8M per thread (151 max threads)
[OK] Maximum possible memory usage: 583.2M (5% of installed RAM)
[OK] Slow queries: 0% (0/54)
[OK] Highest usage of available connections: 0% (1/151)
[OK] Key buffer size / total MyISAM indexes: 8.0M/98.0K
[!!] Key buffer hit rate: 50.0% (2 cached / 1 reads)
[!!] Query cache is disabled
[OK] Temporary tables created on disk: 0% (0 on disk / 6 total)
[!!] Thread cache is disabled
[OK] Table cache hit rate: 85% (41 open / 48 opened)
[OK] Open file limit used: 0% (48/11K)
[OK] Table locks acquired immediately: 100% (50 immediate / 50 locks)
[!!] Connections aborted: 25%

——– Recommendations —————————————————–
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
MySQL started within last 24 hours – recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
Set thread_cache_size to 4 as a starting value
Your applications are not closing MySQL connections properly
Variables to adjust:
query_cache_size (>= 8M)
thread_cache_size (start at 4)

Interesting…. as I see this job is not just set and forget but must be running regularly to identified a running process.

P.S : my.cnf location can be seen from ps command

# ps -ax | grep mysql
96928 ??  Is       0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql –pid-file=/var/db/mysql/
97024 ??  I        0:00.91 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql –plugin-dir=/usr/local/li

or if its not exist you can copy one from share

# ls /usr/local/share/mysql | grep my-


Install PHP 5.2.17 on CentOS 5.10

CentOSAnother server came with specific hardware that require me to install CentOS 5.10 64 bit with base only package. Since CentOS 5 use PHP 5.1 by default so I decide to find a way for PHP 5.2.17 (latest version of PHP 5.2 generation).


I use Jason package from

# nano /etc/yum.repos.d/utter-ramblings.repo
fill these lines :

name=Utter Ramblings


Make sure to change to for baseurl if you use 32 bit.

Install PHP and friends

PHP 5.2.17

# yum install php php-mysql


# yum install mysql-server

Run as service

# chkconfig httpd --add
# chkconfig  httpd  on --level 235
# chkconfig  mysqld --add
# chkconfig mysqld on --level 235

2  =  Multi-user mode console logins only (without networking)
3  =  Multi-User mode, console logins only
5  = Multi-User mode, with display manager as well as console logins (X11)

Checking if already set as service

# chkconfig --list mysqld
mysqld             0:off    1:off    2:on    3:on    4:off    5:on    6:off
# chkconfig --list httpd
httpd              0:off    1:off    2:on    3:on    4:off    5:on    6:off

Checking installed httpd and mysql :

# rpm -qa | grep httpd

# rpm -qa | grep mysql


P.S : in case you got error (refused connection) then iptables need to told about this service :

# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# service iptables save

Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]
# service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]


Last check : date

# date
Rab Nov 12 18:20:19 WIT 2014

Checking BIOS time I see no error.

# rpm -qa | grep ntp

Since another process lock yum, I use quick way :

# date 111210212014
Rab Nov 12 10:21:00 WIT 2014

Yes, that command use following format

date MMDDhhmmYYYY

MM -> month (in two digit)

DD -> date (in two digit)

hh -> hour (in 24 hour format)

mm -> minutes (in 2 digit)

YYYY -> year (in 4 digit)

Check again after issue command.

# date

Rab Nov 12 10:25:21 WIT 2014

Yes, the result is match.

I’ll continue with ntp next time.

For quick dns setting I use maradns.

Update January 15 2015 :

I need fail2ban for this server :

Add server

#rpm -Uvh
warning: /var/tmp/rpm-xfer.UKJ53A: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing… ########################################### [100%]
1:epel-release ########################################### [100%]

Install fail2ban

# yum install fail2ban
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base:
* epel:
* extras:
* updates:
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package fail2ban.noarch 0:0.8.14-1.el5 set to be updated
–> Processing Dependency: python-inotify for package: fail2ban
–> Running transaction check
—> Package python-inotify.noarch 0:0.9.1-1.el5 set to be updated
–> Processing Dependency: python-ctypes for package: python-inotify
–> Running transaction check
—> Package python-ctypes.x86_64 0:1.0.2-3.el5 set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

Package Arch Version Repository Size
fail2ban noarch 0.8.14-1.el5 epel 266 k
Installing for dependencies:
python-ctypes x86_64 1.0.2-3.el5 base 210 k
python-inotify noarch 0.9.1-1.el5 epel 86 k

Transaction Summary
Install 3 Package(s)
Upgrade 0 Package(s)

Total download size: 562 k
Is this ok [y/N]: y
Downloading Packages: [Errno 12] Timeout: <urlopen error timed out>
Trying other mirror.
(1/3): python-inotify-0.9.1-1.el5.noarch.rpm | 86 kB 00:00
(2/3): python-ctypes-1.0.2-3.el5.x86_64.rpm | 210 kB 00:03
(3/3): fail2ban-0.8.14-1.el5.noarch.rpm | 266 kB 00:02
Total 6.8 kB/s | 562 kB 01:22
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6
epel/gpgkey | 1.7 kB 00:00
Importing GPG key 0x217521F6 “Fedora EPEL <>” from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : python-ctypes 1/3
Installing : python-inotify 2/3
Installing : fail2ban 3/3

fail2ban.noarch 0:0.8.14-1.el5

Dependency Installed:
python-ctypes.x86_64 0:1.0.2-3.el5 python-inotify.noarch 0:0.9.1-1.el5


Configuration fail2ban

# nano /etc/fail2ban/jail.conf

Pay attention to ssh section

service fail2ban restart

# service fail2ban restart
Stopping fail2ban: ERROR Unable to contact server. Is it running?
Starting fail2ban: [ OK ]

Check fail2ban exist?

# ps ax | grep fail
4066 ? Sl 0:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/ -x
4099 ? S 0:00 sh -c printf %b “Subject: [Fail2Ban] SSH: stopped on `uname -n`?Date: `LC_TIME=C date -u +”%a, %d %h %Y %T +0000″`?From: Fail2Ban <>?To:\n?Hi,\n?The jail SSH has been stopped.\n?Regards,\n?Fail2Ban” | /usr/sbin/sendmail -f
4103 ? S 0:00 /usr/sbin/sendmail -f
4173 ? Sl 0:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/ -x
4184 ? S 0:00 sh -c printf %b “Subject: [Fail2Ban] SSH: started on `uname -n`?Date: `LC_TIME=C date -u +”%a, %d %h %Y %T +0000″`?From: Fail2Ban <>?To:\n?Hi,\n?The jail SSH has been started successfully.\n?Regards,\n?Fail2Ban” | /usr/sbin/sendmail -f
4188 ? S 0:00 /usr/sbin/sendmail -f

Update : June 24 2015

I just know ntsysv, an utility that useful to enable the service during boot. Neat one.

Well, I need to set sender address :-)

Install Lua on Linux Ubuntu

As Android world use Java mostly for its language then I found Lua is another language that powering many games. I want to try it on my Ubuntu desktop and see how it goes :

$ sudo apt-get install lua
[sudo] password for alamsyah:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package lua is a virtual package provided by:
lua50 5.0.3-6
lua5.2 5.2.1-3
lua5.1 5.1.5-4
You should explicitly select one to install.

I choose Lua 5.2
$ sudo apt-get install lua5.2
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
libjavascriptcoregtk-1.0-0 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common
Use ‘apt-get autoremove’ to remove them.
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 341 not upgraded.
Need to get 159 kB of archives.
After this operation, 357 kB of additional disk space will be used.
Get:1 raring/universe lua5.2 i386 5.2.1-3 [159 kB]
Fetched 159 kB in 2s (57,1 kB/s)
Selecting previously unselected package lua5.2.
(Reading database … 200688 files and directories currently installed.)
Unpacking lua5.2 (from …/lua5.2_5.2.1-3_i386.deb) …
Processing triggers for man-db …
Setting up lua5.2 (5.2.1-3) …
update-alternatives: using /usr/bin/lua5.2 to provide /usr/bin/lua (lua-interpreter) in auto mode
update-alternatives: using /usr/bin/luac5.2 to provide /usr/bin/luac (lua-compiler) in auto mode


Checking version :
$ lua -v
Lua 5.2.1  Copyright (C) 1994-2012, PUC-Rio

$ luac -v
Lua 5.2.1  Copyright (C) 1994-2012, PUC-Rio

Nice, ready for the ‘moon’.

Trying Eclipse on Ubuntu 13.04

I want to try Eclipse on my Ubuntu 13.04 . Installation process is quite straight perhaps useful for me in future use.

Checking Java

I already install Java before, check it first :

$ java -version

java version “1.7.0_25”
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK Server VM (build 23.7-b01, mixed mode)

Get nearest mirror from Eclipse website

As I’m from Indonesia I got mirror from University of Indonesia.

$ wget -c

Checking md5 sum against :

bd98e1ac83cbc95909a3c856d3ced8a6  eclipse-standard-kepler-SR1-linux-gtk.tar.gz

$ md5sum eclipse-standard-kepler-SR1-linux-gtk.tar.gz
bd98e1ac83cbc95909a3c856d3ced8a6  eclipse-standard-kepler-SR1-linux-gtk.tar.gz

Good packet.

$ tar xvzf eclipse-standard-kepler-SR1-linux-gtk.tar.gz

$ sudo ln -s /home/alamsyah/eclipse/eclipse /usr/bin/eclipse
[sudo] password for alamsyah:


$ sudo nano /usr/share/applications/eclipse.desktop

[Desktop Entry]
Comment=IDE for all seasons
Exec=env UBUNTU_MENUPROXY=0 /home/alamsyah/elipse/eclipse


Add ADT Plugin

Start eclipse by typing : eclipse . Click Help and Install New Software.

Click Add button and enter :

Name : ADT

Url :



Click Next.


Accept Terms.


Choose ‘Always run in background’.