You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Nitan Kainth <ni...@gmail.com> on 2019/09/20 15:26:43 UTC

Multiple C* instances on same machine

Hi There,

Any feedback pros/cons for having multiple instances of C* on the same
machine without Docker/container solution?

The plan is to change the ports and run multiple C* processes, so we can
isolate two applications as two different clusters.

Re: Multiple C* instances on same machine

Posted by Nitan Kainth <ni...@gmail.com>.
Thank you folks! It was very helpful


Regards,
Nitan
Cell: 510 449 9629

> On Sep 20, 2019, at 8:04 PM, Jonathan Koppenhofer <jo...@koppedomain.com> wrote:
> 
> We do this without containers quite successfully. As precaution, we...
> - have dedicated disk per instance.
> - have lots of network bandwidth, but also throttle throughout defaults. Also monitor network closely
> - share CPU completely. Limit Cassandra settings to limit CPU use (concurrent threads, compaction throughput, etc) and monitor closely.
> - have plenty of memory on top of jvm allocation
> - never have 2 nodes from the same cluster on a single node.
> - use VIPs so each instance gets its own IP address.
> - use sane OS defaults as documented by Amy Tobey.
> 
> That said, using cgroups or containers would provide better isolation (but worse bursting) when available.
> 
> 
>> On Fri, Sep 20, 2019, 8:42 PM Sandeep Nethi <ne...@gmail.com> wrote:
>> Hi Nitan,
>> 
>> You shouldn’t have any issues if you setup things properly.
>> 
>> Few possible issues could be (can become a bottleneck)
>> 
>> * CPU allocation (Instances can compete)
>> * Disk throughput & IOPS &
>> * Port allocations
>> * Network throughout 
>> * Consistency issues.
>> 
>> And we have work around for all above,
>> 
>> * CPU: Use jvm file to limit number of CPU cores for each instance.
>> * DISK: If possible allocate dedicated disks for each instance.
>> * NETWORK & Ports:   Have a secondary NIC (or equivalent to num of instances). This will give you the flexibility to have Cassandra on same ports with better networking operations.
>> * RACK: having multiple instances on one node can lead to consistency problems when a hosted node goes down for some reason with having RACK’s defined. So, this is very important to choose when going with this kind of setup.
>> 
>> Hope this helps!
>> 
>> Thanks,
>> Sandeep.Nethi
>> 
>> 
>> 
>>> On Sat, 21 Sep 2019 at 12:20 PM, Nitan Kainth <ni...@gmail.com> wrote:
>>> I am looking for possible issues doing this setup without containers. 
>>> 
>>> 
>>> Regards,
>>> Nitan
>>> Cell: 510 449 9629
>>> 
>>>> On Sep 20, 2019, at 5:22 PM, Elliott Sims <el...@backblaze.com> wrote:
>>>> 
>>>> A container of some sort gives you better isolation and less risk of a mistake that could cause the instances to conflict in some way.  Might be better for balancing resources between them as well, though using cgroups directly can also accomplish that.
>>>> 
>>>> On Fri, Sep 20, 2019, 8:27 AM Nitan Kainth <ni...@gmail.com> wrote:
>>>>> Hi There,
>>>>> 
>>>>> Any feedback pros/cons for having multiple instances of C* on the same machine without Docker/container solution? 
>>>>> 
>>>>> The plan is to change the ports and run multiple C* processes, so we can isolate two applications as two different clusters.

Re: Multiple C* instances on same machine

Posted by Jonathan Koppenhofer <jo...@koppedomain.com>.
We do this without containers quite successfully. As precaution, we...
- have dedicated disk per instance.
- have lots of network bandwidth, but also throttle throughout defaults.
Also monitor network closely
- share CPU completely. Limit Cassandra settings to limit CPU use
(concurrent threads, compaction throughput, etc) and monitor closely.
- have plenty of memory on top of jvm allocation
- never have 2 nodes from the same cluster on a single node.
- use VIPs so each instance gets its own IP address.
- use sane OS defaults as documented by Amy Tobey.

That said, using cgroups or containers would provide better isolation (but
worse bursting) when available.


On Fri, Sep 20, 2019, 8:42 PM Sandeep Nethi <ne...@gmail.com> wrote:

> Hi Nitan,
>
> You shouldn’t have any issues if you setup things properly.
>
> Few possible issues could be (can become a bottleneck)
>
> * CPU allocation (Instances can compete)
> * Disk throughput & IOPS &
> * Port allocations
> * Network throughout
> * Consistency issues.
>
> And we have work around for all above,
>
> * CPU: Use jvm file to limit number of CPU cores for each instance.
> * DISK: If possible allocate dedicated disks for each instance.
> * NETWORK & Ports:   Have a secondary NIC (or equivalent to num of
> instances). This will give you the flexibility to have Cassandra on same
> ports with better networking operations.
> * RACK: having multiple instances on one node can lead to consistency
> problems when a hosted node goes down for some reason with having RACK’s
> defined. So, this is very important to choose when going with this kind of
> setup.
>
> Hope this helps!
>
> Thanks,
> Sandeep.Nethi
>
>
>
> On Sat, 21 Sep 2019 at 12:20 PM, Nitan Kainth <ni...@gmail.com>
> wrote:
>
>> I am looking for possible issues doing this setup without containers.
>>
>>
>> Regards,
>>
>> Nitan
>>
>> Cell: 510 449 9629
>>
>> On Sep 20, 2019, at 5:22 PM, Elliott Sims <el...@backblaze.com> wrote:
>>
>> A container of some sort gives you better isolation and less risk of a
>> mistake that could cause the instances to conflict in some way.  Might be
>> better for balancing resources between them as well, though using cgroups
>> directly can also accomplish that.
>>
>> On Fri, Sep 20, 2019, 8:27 AM Nitan Kainth <ni...@gmail.com> wrote:
>>
>>> Hi There,
>>>
>>> Any feedback pros/cons for having multiple instances of C* on the same
>>> machine without Docker/container solution?
>>>
>>> The plan is to change the ports and run multiple C* processes, so we can
>>> isolate two applications as two different clusters.
>>>
>>

Re: Multiple C* instances on same machine

Posted by Sandeep Nethi <ne...@gmail.com>.
Hi Nitan,

You shouldn’t have any issues if you setup things properly.

Few possible issues could be (can become a bottleneck)

* CPU allocation (Instances can compete)
* Disk throughput & IOPS &
* Port allocations
* Network throughout
* Consistency issues.

And we have work around for all above,

* CPU: Use jvm file to limit number of CPU cores for each instance.
* DISK: If possible allocate dedicated disks for each instance.
* NETWORK & Ports:   Have a secondary NIC (or equivalent to num of
instances). This will give you the flexibility to have Cassandra on same
ports with better networking operations.
* RACK: having multiple instances on one node can lead to consistency
problems when a hosted node goes down for some reason with having RACK’s
defined. So, this is very important to choose when going with this kind of
setup.

Hope this helps!

Thanks,
Sandeep.Nethi



On Sat, 21 Sep 2019 at 12:20 PM, Nitan Kainth <ni...@gmail.com> wrote:

> I am looking for possible issues doing this setup without containers.
>
>
> Regards,
>
> Nitan
>
> Cell: 510 449 9629
>
> On Sep 20, 2019, at 5:22 PM, Elliott Sims <el...@backblaze.com> wrote:
>
> A container of some sort gives you better isolation and less risk of a
> mistake that could cause the instances to conflict in some way.  Might be
> better for balancing resources between them as well, though using cgroups
> directly can also accomplish that.
>
> On Fri, Sep 20, 2019, 8:27 AM Nitan Kainth <ni...@gmail.com> wrote:
>
>> Hi There,
>>
>> Any feedback pros/cons for having multiple instances of C* on the same
>> machine without Docker/container solution?
>>
>> The plan is to change the ports and run multiple C* processes, so we can
>> isolate two applications as two different clusters.
>>
>

Re: Multiple C* instances on same machine

Posted by Nitan Kainth <ni...@gmail.com>.
I am looking for possible issues doing this setup without containers. 


Regards,
Nitan
Cell: 510 449 9629

> On Sep 20, 2019, at 5:22 PM, Elliott Sims <el...@backblaze.com> wrote:
> 
> A container of some sort gives you better isolation and less risk of a mistake that could cause the instances to conflict in some way.  Might be better for balancing resources between them as well, though using cgroups directly can also accomplish that.
> 
> On Fri, Sep 20, 2019, 8:27 AM Nitan Kainth <ni...@gmail.com> wrote:
>> Hi There,
>> 
>> Any feedback pros/cons for having multiple instances of C* on the same machine without Docker/container solution? 
>> 
>> The plan is to change the ports and run multiple C* processes, so we can isolate two applications as two different clusters.

Re: Multiple C* instances on same machine

Posted by Elliott Sims <el...@backblaze.com>.
A container of some sort gives you better isolation and less risk of a
mistake that could cause the instances to conflict in some way.  Might be
better for balancing resources between them as well, though using cgroups
directly can also accomplish that.

On Fri, Sep 20, 2019, 8:27 AM Nitan Kainth <ni...@gmail.com> wrote:

> Hi There,
>
> Any feedback pros/cons for having multiple instances of C* on the same
> machine without Docker/container solution?
>
> The plan is to change the ports and run multiple C* processes, so we can
> isolate two applications as two different clusters.
>