[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Reducing HDD writing affect on whole system.



Am Montag, 17. Oktober 2011 schrieb Sthu Deus:
> Thank You for Your time and answer, Martin:
> >How do you copy the file? Maybe the method you use for copying uses
> >small buffers and thus needlessly generated disk seeks. You might try
> >using dd with bs=1M ;).
> 
> I do this w/ mc.
> 
> But w/ dd it is the same.

Also with bs=1M?

> >> >Then also include at least the following:
> >> >
> >> >- hdparm -I /dev/sda | egrep -i "(model|transport:|likely
> >> >used|DMA:)" (replace sda by whatever your drive is)
> >> >
> >>         Model Number:       Hitachi HTS547575A9E384
> >>         
> >>         Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II
> >>         Extensions, SATA Rev 2.5, SATA Rev 2.6; Revision: ATA8-AST
> >> 
> >> T13 Project D1697 Revision 0b
> >
> >I guess thats an 3.5 inch drive? (Don´t want to bother with looking up
> >the model...). For a laptop drive above numbers could make some sense.
> >Is it a 7200 or 5400 rpm drive? This could have an influence, since
> >seeks could have been involved.
> 
> No. 2.5", 5400 RPM - still I do not believe it can be satisfiable
> performance for the drive.

Oh, I do. I do not see more than 30000 blocks in vmstat 1 on IDE driven 
laptop drives.

But with recent kernels it should not stall or lag that long.

> >> Capabilities:
> >>         LBA, IORDY(can be disabled)
> >>         Queue depth: 32
> >>         Standby timer values: spec'd by Standard, no device specific
> >> 
> >> minimum R/W multiple sector transfer: Max = 16  Current = 16
> >> 
> >>         Advanced power management level: 128
> >>         DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5
> >> 
> >> *udma6 Cycle time: min=120ns
> >> recommended=120ns PIO: pio0 pio1 pio2 pio3
> >> pio4 Cycle time: no flow control=120ns  IORDY flow
> >> 
> >>              control=120ns
> >
> >Thats nice, the kernel is using DMA for accessing the drive.
> 
> And probably, the highest? What can be a problem...

Could be, but then it would like be a controller or cabling issue. I would 
exclude cabling issue as long as its the internal laptop drive.

> >> >- lspci -nn | egrep -i "(ide|sata)"
> >> 
> >> SATA controller [0106]: ATI Technologies Inc SB600 Non-Raid-5
> >> SATA [1002:4380]
> >> 
> >> IDE interface [0101]: ATI Technologies Inc
> >> SB600 IDE [1002:438c]
> >
> >Now there might be an issue. I don´t know how good this SATA
> >controller works.
> 
> OK. Then my problem can be cured by replacing the laptop only, - I do
> not think the drivers will be any better since long time has passed
> from the manufacture date?

I am not sure about that... only a grep through kernel changelogs could 
reveal that.
 
> >> >- grep -i "model name" /proc/cpuinfo
> >> 
> >> AMD Turion(tm) 64 X2 Mobile Technology TL-52
> >
> >Or do you happen to do this on a laptop drive?
> 
> Do what?

Copying the 6 GB file... but from what I understand so far: yes, you do 
this on a laptop drive.

> >Then this might explain this issue as well... laptop drives aren´t the
> >fastest.
> 
> Even w/ such huge freezes/delays?!

It is my experience that these have gotten shorter with recent kernels, 
but it seems your mileage varies.

> >So my suggestions:
> >
> >- try to reduce the trigger on when the kernel starts to writeback
> >data
> 
> How do I do this?

Try lower values for /proc/sys/vm/dirty_background_ratio, its the 
percentage of pages to be dirty at which the kernel has to start writing 
out data. Or alternatives try with different values for 
dirty_background_writes.

Background for this: On machine with lots of RAM and slow drives writes 
can pile up that badly, that you get bulky / stalling before when the 
kernel then gets intro stress writing out data in order to free memory for 
example.

Its worth an attempt...

> >- try to use ionice with the IDLE priority for the copy process
> 
> Is it manually or some tunable util.s aare available in the system?

man ionice ;)

Although it is my experience that it does much less of a difference than I 
hope for.

> >- or use block i/o controller to limit the bandwith
> 
> How do I do this?

- apt-get install linux-doc-3.0.0
- cd /usr/share/doc/linux-doc-3.0.0
- find -name "*blkio*controller*"

Read it, try it. Either with relative I/O weights or even by limiting the 
bandwidth to say 5 MB/s or so to have what ionice with IDLE scheduling 
class might not give you.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


Reply to: