Couchbase server as a Memcached cluster (part 1)


One of our application new release is coming with Couchbase server as a component. They will use it as how Couchbase claim to be first implemented by customers: as a drop-in replacement of Memcached server.

In this typical Couchbase server installation Couchbase marketing claim you gain:

  • Elastic scalability
  • Always-on availability
  • Push-button manageability with graphical interface
  • Enterprise support in case you need it

They also argue that the replacement is transparent if you are coming from Memcached while it requires a bit of work if you are coming from Oracle Coherence. Those two caching products are the most well known.

As I have already tested Memcached is a previous post I wanted to see how transparent the replacement would be.

Testing has been done using two virtual machines running Oracle Enterprise Linux 7.2 64 bits. I allocated 2GB and 1 core to each virtual machine. They are called:

  • using non routable IP
  • using non routable IP

Couchbase server standalone installation

I have downloaded community edition for Red Hat 7 and the RPM download is for Centos 7:

[root@server2 ~]# yum -y install /tmp/couchbase-server-community-4.0.0-centos7.x86_64.rpm
Loaded plugins: ulninfo
Examining /tmp/couchbase-server-community-4.0.0-centos7.x86_64.rpm: couchbase-server-community-4.0.0-4051.x86_64
Marking /tmp/couchbase-server-community-4.0.0-centos7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package couchbase-server-community.x86_64 0:4.0.0-4051 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
 Package                                              Arch                             Version                                Repository                                                                  Size
 couchbase-server-community                           x86_64                           4.0.0-4051                             /couchbase-server-community-4.0.0-centos7.x86_64                           200 M
Transaction Summary
Install  1 Package
Total size: 200 M
Installed size: 200 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: Swappiness is not set to 0.
Please look at as for how to PERMANENTLY alter this setting.
Minimum RAM required  : 4 GB
System RAM configured : 1.70 GB
Minimum number of processors required : 4 cores
Number of processors on the system    : 1 cores
  Installing : couchbase-server-community-4.0.0-4051.x86_64                                                                                                                                                1/1
Reloading systemd:  [  OK  ]
Starting couchbase-server (via systemctl):  Failed to start couchbase-server.service: Unit couchbase-server.service failed to load: No such file or directory.
You have successfully installed Couchbase Server.
Please browse to to configure your server.
Please refer to for additional resources.
Please note that you have to update your firewall configuration to
allow connections to the following ports: 11211, 11210, 11209, 4369,
8091, 8092, 8093, 9100 to 9105, 9998, 18091, 18092, 11214, 11215 and
from 21100 to 21299.
By using this software you agree to the End User License Agreement.
See /opt/couchbase/LICENSE.txt.
  Verifying  : couchbase-server-community-4.0.0-4051.x86_64                                                                                                                                                1/1
  couchbase-server-community.x86_64 0:4.0.0-4051

Many warnings for memory and number of cores, as well as an error to start Couchbase server. As it is a test system I’m not paying much attention to memory/cores warnings. The only interesting parameter to change is memory swappiness that we have already seen. To make change persistent across reboot I have used:

[root@server2 ~]# cat /proc/sys/vm/swappiness
[root@server2 ~]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
# For more information, see sysctl.conf(5) and sysctl.d(5).
#Set swappiness to 0 to avoid swapping
vm.swappiness = 0
[root@server2 ~]# sysctl -p
vm.swappiness = 0
[root@server2 ~]# cat /proc/sys/vm/swappiness

If you access to short link of installation log you will also see that Transparent Huge Pages (THP) should also be deactivated:

[root@server2 ~]# systemctl status ksm
● ksm.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
[root@server1 ~]# systemctl status ksmtuned
● ksmtuned.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

I have created a dedicated filesystem for Couchbase (RPM installation creates a couchbase user and group):

[root@server2 ~]# lvcreate -n lvol10 -L 4g vg00
  Logical volume "lvol10" created.
[root@server2 ~]# mkfs -t xfs /dev/vg00/lvol10
meta-data=/dev/vg00/lvol10       isize=256    agcount=4, agsize=262144 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1048576, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server2 ~]# chown couchbase:couchbase /couchbase

Starting Couchbase daemon with systemctl isn’t working:

[root@server2 ~]# systemctl start couchbase-server
Failed to start couchbase-server.service: Unit couchbase-server.service failed to load: No such file or directory.

As a workaround use start/stop script directly:

[root@server2 ~]# /opt/couchbase/etc/couchbase_init.d status
couchbase-server-community is not running
[root@server2 ~]# /opt/couchbase/etc/couchbase_init.d start
Starting couchbase-server-community

You can now access in your favorite browser to your server on port 8091:


Supply Couchbase directory to use, IP address of your server (if on localhost like me) and start a new cluster:


No sample buckets:


Bucket type as Memcached, all available memory allocated and flush option activated:


No notification:


Administrator account and password:


Then finally Couchbase server graphical interface:


Couchbase server cluster installation

The Linux part is exactly equivalent to the one of the first server. Only the graphical setup is slightly different.

Specify working directory, IP address of your server and choose join a cluster and supply administrator account and password:


You immediately reach the graphical interface that notify you a rebalance operation is needed, click on the link:


On this page click on Rebalance button (cannot be simpler):


And you are back on home page that is accessible on any node of the cluster ( and



About Post Author

2 thoughts on “Couchbase server as a Memcached cluster (part 1)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>