Титла: Идеи за висок iowait
Публикувано от: wfw в Jun 13, 2014, 17:56
Имам си една машина, на която работи един сайт... Всичко си беше наред до вчера, когато изведнъж от нищото IO wait скочи до небето и сайта започна да бави страшно. Пробвах доста неща, но без резултат. Броя заявки не са се увеличили, трафика не се е увеличил. Това, което виждам е, че mysql държи постоянно 40-50% от процесора. (http://zaynelov.com/list/linux-bg/cpu-week.png) Първо помислих, че проблем с дисковете (2 в софтуерен раид1), защото в dmesg имаше следното инфо: [ 4152.088019] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen [ 4152.088079] ata2.00: cmd b0/d0:01:00:4f:c2/00:00:00:00:00/00 tag 0 pio 512 in [ 4152.088080] res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout) [ 4152.088115] ata2.00: status: { DRDY } [ 4152.088149] ata2: hard resetting link [ 4153.234660] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 4153.260871] ata2.00: configured for UDMA/133 [ 4153.260871] ata2: EH complete [ 4153.260871] sd 1:0:0:0: [sdb] 1953525168 512-byte hardware sectors (1000205 MB) [ 4153.260871] sd 1:0:0:0: [sdb] Write Protect is off [ 4153.260871] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 4153.288871] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Извадих диска от масива, но това не помогна и резултатите останаха същите. Помислих да не би да го притеснява await, затова монтирах файловите системи с noawait, но това също не даде никакъв ефект. В slow-query.log файла има доста заявки, но това е нормално предвид бавната работа на дисковете... Всякакви идеи биха били полезни :) Предпочитам да събера максимално много идеи, защото машината е на другия край на града и искам като отида да пробвам всичко хардуерно, а софтуерните тестове мога да ги направя веднага и да върна резултатите...
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 13, 2014, 18:37
По време на започването на лоад-а в kern.log се е записало следното Jun 12 22:55:10 kernel: [59741648.641280] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 Jun 13 01:25:11 kernel: [59751926.478633] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 02:00:16 kernel: [59754579.431318] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 02:18:42 kernel: [59755925.297321] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 04:18:55 kernel: [59764321.490998] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 04:20:27 kernel: [59764430.709079] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 06:48:14 kernel: [59774644.524858] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 Jun 13 08:38:09 kernel: [59782106.340990] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
Ако беше само на единия диск, щях да си помисля, че е проблем с диска или кабела му, но това, че един път се е появило и на другия диск ме навежда на мисълта за проблем в РАМ-а или дъното...
Титла: Re: Идеи за висок iowait
Публикувано от: d0ni в Jun 13, 2014, 18:59
Виж с iostat -xd 5 дали има голяма активност на дисковете.
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jun 13, 2014, 22:00
[ 4152.088019] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen [ 4152.088079] ata2.00: cmd b0/d0:01:00:4f:c2/00:00:00:00:00/00 tag 0 pio 512 in [ 4152.088080] res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout) [ 4152.088115] ata2.00: status: { DRDY } [ 4152.088149] ata2: hard resetting link [ 4153.234660] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 4153.260871] ata2.00: configured for UDMA/133 [ 4153.260871] ata2: EH complete [ 4153.260871] sd 1:0:0:0: [sdb] 1953525168 512-byte hardware sectors (1000205 MB) Тези дни получавам точно същите съобщения на един диск и този диск в момента развива Reallocated_Sectors. Я му пусни едно smartctl --all /dev/sdb . не искам да ти кажа че това е проблема ти, но може да имаш и друг задаващ се проблем с диска.
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 13, 2014, 22:12
d0ni - има голяма активност, но от поток от 7МБ/сек :o iostat -xd 5 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 62.18 141.81 18.32 16.21 3010.01 1270.12 123.95 12.58 361.12 15.14 52.29 sda1 23.61 63.41 10.45 8.26 2610.24 575.87 170.24 5.15 275.15 22.95 42.95 sda2 38.57 78.39 7.87 7.95 399.75 694.22 69.17 7.43 462.90 27.45 43.41 sda3 0.01 0.00 0.00 0.00 0.02 0.03 52.11 0.00 33.07 18.76 0.00 sdb 48.79 95.56 8.62 11.22 879.29 2593.90 175.04 13.94 700.30 27.17 53.92 sdb1 13.03 67.71 3.65 8.14 552.00 2344.87 245.83 8.55 725.17 42.41 49.98 sdb2 35.75 27.85 4.97 3.08 327.27 249.03 71.53 5.39 664.08 47.15 37.98 sdb3 0.01 0.00 0.00 0.00 0.01 0.00 10.13 0.00 2.75 2.03 0.00 md0 0.00 0.00 36.25 71.38 1309.70 571.06 17.47 0.00 0.00 0.00 0.00 md1 0.00 0.00 87.16 86.19 727.00 689.53 8.17 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 20.60 82.40 8.20 66.80 3638.40 1200.00 64.51 23.14 306.55 5.34 40.08 sda1 20.60 41.00 8.20 61.60 3638.40 822.40 63.91 22.50 322.30 4.22 29.44 sda2 0.00 41.40 0.00 5.20 0.00 377.60 72.62 0.64 95.08 43.69 22.72 sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdb 0.00 105.60 0.00 78.20 0.00 5483.20 70.12 18.84 278.90 12.62 98.72 sdb1 0.00 64.20 0.00 67.00 0.00 4864.00 72.60 16.07 237.58 14.04 94.08 sdb2 0.00 41.40 0.00 11.20 0.00 619.20 55.29 2.77 526.07 55.21 61.84 sdb3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 md0 0.00 0.00 0.40 102.40 3.20 819.20 8.00 0.00 0.00 0.00 0.00 md1 0.00 0.00 0.00 46.40 0.00 371.20 8.00 0.00 0.00 0.00 0.00
в момента вкарвам втория диск в РАИД масива, но става адски бавно. Въпреки sysctl dev.raid.speed_limit_min=50000 sysctl dev.raid.speed_limit_max=500000
Не успява да вдигне повече от 7МБ/сек smartctl --all /dev/sdb === START OF INFORMATION SECTION === Device Model: WDC WD1001FALS-00E3A0 Serial Number: WD-WCATR0011319 Firmware Version: 05.01D05 User Capacity: 1,000,204,886,016 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 8 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Fri Jun 13 22:10:42 2014 EEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
General SMART Values: Offline data collection status: (0x85) Offline data collection activity was aborted by an interrupting command from host. Auto Offline Data Collection: Enabled. Self-test execution status: ( 241) Self-test routine in progress... 10% of test remaining. Total time to complete Offline data collection: (16560) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 192) minutes. Conveyance self-test routine recommended polling time: ( 5) minutes. SCT capabilities: (0x3037) SCT Status supported. SCT Feature Control supported. SCT Data Table supported.
SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 176 174 021 Pre-fail Always - 4166 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 21 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 048 048 000 Old_age Always - 38143 10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 19 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 14 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 6 194 Temperature_Celsius 0x0022 110 090 000 Old_age Always - 37 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
SMART Error Log Version: 1 No Errors Logged
SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
smarctl --all /dev/sda === START OF INFORMATION SECTION === Device Model: WDC WD1001FALS-00E3A0 Serial Number: WD-WCATR0011662 Firmware Version: 05.01D05 User Capacity: 1,000,204,886,016 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 8 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Fri Jun 13 22:11:31 2014 EEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
General SMART Values: Offline data collection status: (0x85) Offline data collection activity was aborted by an interrupting command from host. Auto Offline Data Collection: Enabled. Self-test execution status: ( 241) Self-test routine in progress... 10% of test remaining. Total time to complete Offline data collection: (17700) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 204) minutes. Conveyance self-test routine recommended polling time: ( 5) minutes. SCT capabilities: (0x3037) SCT Status supported. SCT Feature Control supported. SCT Data Table supported.
SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 175 174 021 Pre-fail Always - 4225 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 21 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 049 049 000 Old_age Always - 37403 10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 19 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 14 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 6 194 Temperature_Celsius 0x0022 108 087 000 Old_age Always - 39 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
SMART Error Log Version: 1 No Errors Logged
SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
Не виждам някакъв конкретен проблем в данните от smartctl.
Титла: Re: Идеи за висок iowait
Публикувано от: gat3way в Jun 13, 2014, 22:23
Що не пробваш да изключиш сървъра, да извадиш SATA кабелите, да издухаш праха и да ги вържеш пак? Може и да е прецакан кабел, симптомите са баш такива, особено като гледам резултатите от smart теста, няма проблем с диска.
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 13, 2014, 22:28
Да, това е едното нещо, което ще направя, но в понеделник. Ще нося и цял компютър да прехвърля дисковете в него, в случай, че не стане със замяна на кабела, за да мога да си тествам на спокойствие другите компоненти. Допускам, че може и да е някакъв хардуерен проблем с дъното, като надут кондензатор, защото е някакво десктоп Асус, не е марково за сървър :)
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jun 13, 2014, 23:13
Дисковете са в идеално състояние. Сега ако някой обясни тези логове? Единствената разлика е че при мене вместо 'hard resetting link' е 'soft resetting link'. ??? ??? ???
Като има проблем с кабела не трябва ли да логне в смарта UDMA_CRC_Error_Count
----- ПС: виждал съм дискове които така са се повредили че почват да дават много малък трансфер 2-3мб/с до 10 Мб/сек докато смарта показва всичко идеално. Можеш ли да изтестваш дисковете поотделно с hdaprm -tT или там с каквото беше sdparm...?
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 13, 2014, 23:43
/dev/sda: Timing buffered disk reads: 64 MB in 3.04 seconds = 21.03 MB/sec /dev/sdb: Timing buffered disk reads: 66 MB in 3.10 seconds = 21.29 MB/sec /dev/md0: Timing buffered disk reads: 4 MB in 3.43 seconds = 1.17 MB/sec /dev/md1: Timing buffered disk reads: 26 MB in 3.02 seconds = 8.62 MB/sec
Трагично зле, особено md0 :D И вкъщи машинката: /dev/sda: Timing buffered disk reads: 264 MB in 3.00 seconds = 87.90 MB/sec /dev/sdb: Timing buffered disk reads: 314 MB in 3.01 seconds = 104.21 MB/sec /dev/md0: Timing buffered disk reads: 226 MB in 3.01 seconds = 74.97 MB/sec /dev/md1: Timing buffered disk reads: 324 MB in 3.01 seconds = 107.48 MB/sec
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jun 14, 2014, 00:00
Закачаш единият диск на друга машина и го тестваш с hdparm -tT трябва да даде поне 100МБ/сек
Виж и дали случайно кърнела не го е превключил на накое по ниско ДМА.... въртят ми се в главата такива спомени. hdparm (sdparm) имаше опция където показваше на какво UDMA работи диска.
Титла: Re: Идеи за висок iowait
Публикувано от: gat3way в Jun 14, 2014, 03:03
Не е задължително да дава CRC грешки. Това отдолу има цял протокол по който минава комуникацията от контролера към устройството. Примерно може ако е повреден кабела, от контролера да идват нонстоп глупости и съответно устройството да връща отговори "не ме занимавай, не мога да ти смогна", това по спомени е част от протокола. В този случай CRC грешки няма да се регистрират, а и ще обясни деградацията на скоростта. А може и да се регистрират, но контролера да не conform-ва като хората на SMART спецификацията и да не ти ги показва. Това е божа работа. Всъщност може да ми изглежда като божа работа, защото не разбирам от тия неща. Обаче във всеки случай вижте кабела, аз лично съм виждал такъв случай и симптомите бяха мнооого подобни, sata кабела след като се смени всичко мистериозно се оправи.
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jun 14, 2014, 09:42
А да. Може. Сега се сещам :o :o :o :o имах един диск (даже в момента работя на него :o) само че ata66 с онези лентовите кабели.
В един момент почна да давя страшно нисък трансфер като в случая 1-2 мб/сек без абсолютно никави грешки по смарта. След като смених кабела всичко се оправи ---- и още работя на него.
А колкото до SАТА кабелите - това е голяма хуйня. И изобщо по надежност не могът да се сравняват с предишните. преебават им се съединителите. Пластинките омекват, окисляват се и престават да дават добър контакт. Като добавим, че китайчето може да сложило кабел с по-тънко жило вътре - така че да не държи на честота става много криминално.
Ако стигнеш до смяна на кабели търси нови и обезателно със закопчалки.
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 14, 2014, 11:19
/dev/sda: Timing buffered disk reads: 64 MB in 3.04 seconds = 21.03 MB/sec /dev/sdb: Timing buffered disk reads: 66 MB in 3.10 seconds = 21.29 MB/sec /dev/md0: Timing buffered disk reads: 4 MB in 3.43 seconds = 1.17 MB/sec /dev/md1: Timing buffered disk reads: 26 MB in 3.02 seconds = 8.62 MB/sec Интересно е, че другия диск (sda) има същите трагични стойности за четене... Предполагам, че контролера определя скоростта на всяко устройство индивидуално и ако проблема беше в кабела на sdb, би трябвало sda да прави около 100МБ/сек...
Титла: Re: Идеи за висок iowait
Публикувано от: laskov в Jun 14, 2014, 22:43
А дали в същия момент не върви синхронизиране на информацията? Нали райдът в един момент се е разсинхронизирал? После му трябва време да се синхронизира, през което време достъпът до него ще е бавен.
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jun 16, 2014, 16:25
И така, проблема изненада дори мен! :)
Счупен вентилатор причинява вибрации в кутията, което пречи на двата диска да работят бързо. Четат, но им трябва доста време докато изчетат клатещата се информация.
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jul 09, 2014, 15:31
Е та това ли да е било. :o Щото аз смених диска и проблемните съобщения 'soft/hard resetting link' в логовете изчезнаха.
Само дето моят развиваше reallocation sectors. И сигурно от това и той е забавял четенето и затова са се пръквали същите съобщения в логовете.
Титла: Re: Идеи за висок iowait
Публикувано от: wfw в Jul 10, 2014, 08:59
Интересно беше още, че направих тестове и с други дискове и се оказа, че WD black са най-зле. При другите скоростта не пада толкова без и с вибрации. А когато е доста натоварен дисковия масив започват много ниските скорости...
Титла: Re: Идеи за висок iowait
Публикувано от: Naka в Jul 10, 2014, 10:47
Shouting in the Datacenter ($2)
Това което със сигурност знам е, че дисковете се преебават от силна музика - особено баси. Имахме клиенти които вземат си чисто новият компютър, надуят си уредбата с големите тонколони на мах и диска отива. Нямаше здрав сектор >:(. Не един или два бад сектори - а целият диск от край до край пълен със бад сектори -надупчен като швейцарско сирене :o
Пробвал съм се да бия и удрям сегате. Много бой изяде и са много здрави на такива сътресения - (удрения и чукане). Ако усети много бой задейства нещо.. престава верменно да чете чува се как позиционира главите и след това се оправя.
Та мисълта ми е че дисковете се справят с такива обикновени вибрации от чукания и удрения - обаче по-високочестотните звукови вибрации май им се отразяват зле и заорават главите. >:D
|