Subscribe

Why CP-reads are increased under low free space condition?

Hello!

From the KB article "2017993 - Potential performance impact due to low aggregate free space.":

"Under low free space conditions, disk operation will be higher as a result of increased CP-reads (calculate parity read) relative to WRITE operations."

I would like to understand clearly why the number of CP-reads operations gets increased when you have a low free space condition.

Can someone help me?

Kinds Regards,

Pedro Rocha.

Re: Why CP-reads are increased under low free space condition?

Just a comment:

I understand that CP-read happen during the write procedures. What I do not get is why, under low space, CP-reads gets increased.

Pedro Rocha

Re: Why CP-reads are increased under low free space condition?

As i understand it, the CP read increase is because when the array gets full, generally you end up having to write partial stripes. When you write partial stripes you need to read in the entire stripe to recalculate the parity information.

Re: Why CP-reads are increased under low free space condition?

Hi Shane,

Thank you for the response.

Could you please explain a little more why it starts to, generally, write partial stripes?

Regards,

Pedro Rocha

Re: Why CP-reads are increased under low free space condition?

Hey

Sorry for taking so long to get back to you

OK so ideally what the netapp is going to try and do is write stuff out in nice big long stripes across all the disks. When the array gets full those full stripe spaces get harder to find, so the filer starts kind of inserting data into holes in previous stripes (i.e where data has been deleted previously)  each time that happens only a partial stripe is written (because there's no contiguous space to write the full stripe) therefore parity information for that stripe needs to be recalculated. For that to be recalculated the stripe needs to be read in (i.e. CP_reads)

Well, that's how i understand it,

Hope this helps   (and i'm right )

Cheers

Shane