Portál AbcLinuxu, 10. května 2025 09:15
Mam v pc tri diky
40GB Seagate ata
500GB Seagate sata 1
500GB Western sata 1
Pri kopirovani z 40 Seagate > 500 Seagate nebo opacne je vse v poradku i /proc/diskstats vykazuje spravne hodnoty , ale kdyz kopiruju z
40 Seagate > 500 Western tak cteni z disku 40G je 5x mensi nez zapis na disk 500G Western ??? to si proc/diskstats prymysli zapsana data na 500G disk nebo z disku 40G se nepocitaji cela a je jich cca 5x min .
Jeste jednou napisu , pokud kopiruju data Seagate na Seagate je vse v poradku . Program RRDTOOL mi v grafu pro disk data z disku Seagate vykresli spravne tak ze zapis a cteni se krivky prekryvaji , ale u disku S a W uz tomu tak neni .
Řešení dotazu:
Prikladam dmesg vypis
scsi0 : sata_nv
scsi1 : sata_nv
ata1: SATA max UDMA/133 cmd 0x00010ff8 ctl 0x00010ff2 bmdma 0x0001e400 irq 18
ata2: SATA max UDMA/133 cmd 0x00010fe8 ctl 0x00010fe2 bmdma 0x0001e408 irq 18
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-8: WDC WD5000AACS-00ZUB0, 01.01B01, max UDMA/133
ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/133
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ATA-8: ST3500320AS, SD15, max UDMA/133
ata2.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata2.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access ATA WDC WD5000AACS-0 01.0 PQ: 0 ANSI: 5
scsi 1:0:0:0: Direct-Access ATA ST3500320AS SD15 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI disk
sd 1:0:0:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdb: sdb1
A pri kopírovaní medzi tými SATA diskami to robí čo? Akým spôsobom ďalej spracuvávaš údaje z /proc/diskstats? Nie je problém to, že po vynásobení počet blokov krát 512 to pretečie cez hranice integeru v jazyku, v ktorom to rátaš?
Po delsim testovani a kopirovani stejneho souboru jsem zjistil ze anomalie se tyka pouze zapisu na disk od WD 500 GB , jine disky se chovaji normalne . Cteni z disku WD 500 GB je taky korektni , jedna se tedy pouze o zapis kdy je hodnota 5x vetsi nez skutecna a navic kopirovani souboru na disk trva 2x dele nez u jinych disku , ostatni disky kopirovaly cteni a zapis stejnou krivkou , cteni z disku WD 500 GB kopirovalo stejnou krivku zapisu na jiny disk .
A tak se ptam jestli neni mozne ze pri zapisu na zmineny disk nedochazi ke ztrate dat a tak musi data posilat opakovane , protoze zapis stejneho souboru trva 2x dele .
No, to by hádam robiť nemalo... Určite by v dmesg či syslogu boli nepekné hlášky keby sa nedarilo písať na disk...
Aké tam máš filesystémy? A ako ich mountuješ? Nebude problém v tom, že pri každom zápise sa ešte niečo ďalšie zapisuje inam? Napríklad žurnál?
Je to ext3 vsehno , mountuju to pres drakdisk .
Čo píše mount -l
keď to je všetko namountované?
mount -l
/dev/hda5 on / type ext3 (rw,noatime)
none on /proc type proc (rw)
/dev/sdb1 on /mnt/media type ext3 (rw,noatime)
/dev/sda1 on /mnt/media2 type ext3 (rw,sync,noatime)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
Nebude to /mnt/media2, ten s tým sync? Skús to bez sync: mount -o remount,rw,noatime /dev/sda1 /mnt/media2
u sda1 kde byl problem , jsem odstranil polozku sync a uz je vse v poradku , rychlost kopirovani se rapidne zvedla .
Jeste jedna otazecka v /proc/diskstats zobrazuje prenesena data v KBytech
vypocet by mel vypadat nejak takto ?
ulozeni hodnoty 1
pockat 1sec
ulozeni hodnoty 2
2 - 1 = pocet prenesenych kBytu za sec
Jeste jedna otazecka v /proc/diskstats zobrazuje prenesena data v KBytech
/proc/diskstats určite neobsahuje kilobajty. Čo presne obsahuje, to sa dozvieš v /usr/src/linux/Documentation/iostats.txt
V praxi sú pre graf priepustnosti disku zaujímavé položky "Field 3 -- # of sectors read" - počet prečítaných sektorov a "Field 7 -- # of sectors written" - počet zapísaných sektorov. Tento údaj prenásobíš číslom 512 - to je veľkosť sektora v bajtoch.
vypocet by mel vypadat nejak takto ? ...
Nie, keď používaš RRD, tak by si výpočet mal nechať na neho, t.j. použiť typ COUNTER, alebo DERIVE. Večer keď budem doma, môžem napísať viac...
Pouzivam DERIVE a doplnil jsem skript o vypocet x 512 , a vysledek je uz spravny .
Dekuji moc .
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.