Hello,

We've done some additional monitoring, and I think we have more information.  
We've been collecting vmstat information every minute, attempting to catch  a 
node with issues,.

So, it appears, that the cassandra node runs fine.  Then suddenly, without any 
correlation to any event that I can identify, the I/O wait time goes way up, 
and stays up indefinitely.  Even non-cassandra  I/O activities (such as 
snapshots and backups) start causing large I/O Wait times when they typically 
would not.  Previous to an issue, we would typically see I/O wait times 3-4% 
with very few blocked processes on I/O.  Once this issue manifests itself, i/O 
wait times for the same activities jump to 30-40% with many blocked processes.  
The I/O wait times do go back down when there is literally no activity.   

-  Updating the node to the latest Amazon Linux patches and rebooting the 
instance doesn't correct the issue.
-  Backing up the node, and replacing the instance does correct the issue.  I/O 
wait times return to normal.

One relatively recent change we've made is we upgraded to m1.xlarge instances 
which has 4 ephemeral drives available.  We create a logical volume from the 4 
drives with the idea that we should be able to get increased I/O throughput.  
When we ran m1.large instances, we had the same setup, although it was only 
using 2 ephemeral drives.  We chose to use LVM, vs. madm because we were having 
issues having madm create the raid volume reliably on restart (and research 
showed that this was a common problem).  LVM just worked (and had worked for 
months before this upgrade)..

For reference, this is the script we used to create the logical volume:

vgcreate mnt_vg /dev/sdb /dev/sdc /dev/sdd /dev/sde
lvcreate -L 1600G -n mnt_lv -i 4 mnt_vg -I 256K
blockdev --setra 65536 /dev/mnt_vg/mnt_lv
sleep 2
mkfs.xfs /dev/mnt_vg/mnt_lv
sleep 3
mkdir -p /data && mount -t xfs -o noatime /dev/mnt_vg/mnt_lv /data
sleep 3

Another tidbit... thus far (and this maybe only a coincidence), we've only had 
to replace DB nodes within a single availability zone within us-east.  Other 
availability zones, in the same region, have yet to show an issue.

It looks like I'm going to need to replace a third DB node today.  Any advice 
would be appreciated.

Thanks,
-Mike


On Apr 26, 2013, at 10:14 AM, Michael Theroux wrote:

> Thanks.
> 
> We weren't monitoring this value when the issue occurred, and this particular 
> issue has not appeared for a couple of days (knock on wood).  Will keep an 
> eye out though,
> 
> -Mike
> 
> On Apr 26, 2013, at 5:32 AM, Jason Wee wrote:
> 
>> top command? st : time stolen from this vm by the hypervisor
>> 
>> jason
>> 
>> 
>> On Fri, Apr 26, 2013 at 9:54 AM, Michael Theroux <mthero...@yahoo.com> wrote:
>> Sorry, Not sure what CPU steal is :)
>> 
>> I have AWS console with detailed monitoring enabled... things seem to track 
>> close to the minute, so I can see the CPU load go to 0... then jump at about 
>> the minute Cassandra reports the dropped messages,
>> 
>> -Mike
>> 
>> On Apr 25, 2013, at 9:50 PM, aaron morton wrote:
>> 
>>>> The messages appear right after the node "wakes up".
>>> Are you tracking CPU steal ? 
>>> 
>>> -----------------
>>> Aaron Morton
>>> Freelance Cassandra Consultant
>>> New Zealand
>>> 
>>> @aaronmorton
>>> http://www.thelastpickle.com
>>> 
>>> On 25/04/2013, at 4:15 AM, Robert Coli <rc...@eventbrite.com> wrote:
>>> 
>>>> On Wed, Apr 24, 2013 at 5:03 AM, Michael Theroux <mthero...@yahoo.com> 
>>>> wrote:
>>>>> Another related question.  Once we see messages being dropped on one 
>>>>> node, our cassandra client appears to see this, reporting errors.  We use 
>>>>> LOCAL_QUORUM with a RF of 3 on all queries.  Any idea why clients would 
>>>>> see an error?  If only one node reports an error, shouldn't the 
>>>>> consistency level prevent the client from seeing an issue?
>>>> 
>>>> If the client is talking to a broken/degraded coordinator node, RF/CL
>>>> are unable to protect it from RPCTimeout. If it is unable to
>>>> coordinate the request in a timely fashion, your clients will get
>>>> errors.
>>>> 
>>>> =Rob
>>> 
>> 
>> 
> 

Reply via email to