У меня возникла следующая проблема, связанная с быстродействием файл-сервера.
Есть сервер:
Железо:
мать - Intel S3210SH
RAID - 3ware 9550SX-8LP
проц - Intel® Core™2 Duo CPU E7200 @ 2.53GHz
Винты - 8 шт. Seagate (которые RAID-edition) собран RAID-5
Софт
Linux 2.6.29-gentoo-r1
RAID bus controller: 3ware Inc 9550SX SATA-II RAID PCI-X (Kernel driver in use: 3w-9xxx)
RAID-5 на 8-ми винчестерах
Файловая система XFS
Код: Выделить всё
share # xfs_info /dev/sda1
meta-data=/dev/sda1 isize=256 agcount=7, agsize=268435392 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=1708965879, imaxpct=5
= sunit=64 swidth=640 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=32768, version=2
= sectsz=512 sunit=64 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
MOUNT: /dev/sda1 on /mnt/raid type xfs (rw,noatime,logbufs=8)Вот, собственно, суть:
Когда к диску начинают часто обращаться (при копировании с ФТП, при раздаче торрентов, при копировании через самбы) система ничанает тормозить, причём очень критично.
Приведу пример: (использую dstat для диагностики)
начинаем копировать какой-нибудь большой файлик
Код: Выделить всё
cp ubuntu-9.10-dvd-i386.iso /dev/nullполучаем
Код: Выделить всё
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- --epoch---
usr sys idl wai hiq siq| read writ| recv send| in out | int csw | epoch
1 4 50 45 1 0| 148M 0 |1603B 1288B| 0 0 | 875 1728 |1257131281
0 2 52 47 0 0| 137M 0 |1930B 2334B| 0 0 | 840 1626 |1257131282
1 3 48 49 0 0| 144M 0 |1036B 964B| 0 0 | 842 1635 |1257131283
1 3 51 47 0 0| 140M 0 |1181B 910B| 0 0 | 831 1624 |1257131284
1 3 50 47 0 0| 137M 0 |1082B 1234B| 0 0 | 826 1582 |1257131285
1 2 51 47 0 0| 136M 0 | 934B 856B| 0 0 | 794 1476 |1257131286
1 2 49 50 0 0| 127M 0 | 871B 640B| 0 0 | 749 1363 |1257131287
1 3 47 50 0 0| 140M 0 | 438B 694B| 0 0 | 802 1489 |1257131288
1 1 50 49 0 0| 148M 0 | 992B 1072B| 0 0 | 850 1604 |1257131289
1 2 51 47 0 0| 146M 0 | 910B 831B| 0 0 | 836 1582 |1257131290
1 5 48 47 0 0| 322M 0 |1005B 910B| 0 0 |1595 3444 |1257131291
1 13 50 36 0 1| 458M 0 |1701B 1450B| 0 0 |2203 4861 |1257131292
1 9 53 38 0 0| 587M 24k|1671B 1396B| 0 0 |2753 6107 |1257131293
1 13 50 37 0 0| 576M 0 |1971B 1628B| 0 0 |2697 5988 |1257131294
1 7 66 27 0 0| 418M 0 | 999B 1148B| 0 0 |2015 4304 |1257131295
1 0 100 0 0 0| 0 0 |1767B 1222B| 0 0 | 236 15 |1257131296
1 0 100 0 0 0| 0 0 |1030B 1126B| 0 0 | 232 11 |1257131297^CОбратим внимание, на скорость чтения с диска и WAIT-ы
Запускаем сразу несколько копирований
Код: Выделить всё
cp ubuntu-9.10-dvd-i386.iso /dev/null & cp ubuntu-9.10-dvd-amd64.iso /dev/null & cp edubuntu-9.10-dvd-i386.iso /dev/null & cp edubuntu-9.10-dvd-amd64.iso /dev/nullВидим:
Код: Выделить всё
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- --epoch---
usr sys idl wai hiq siq| read writ| recv send| in out | int csw | epoch
0 3 15 83 0 0| 102M 0 |1496B 1225B| 0 0 | 691 1540 |1257131582
0 2 8 91 0 0| 109M 0 |1956B 2334B| 0 0 | 740 1668 |1257131583
0 2 5 94 0 0| 115M 0 |1183B 1018B| 0 0 | 752 1793 |1257131584
0 3 14 83 0 0| 135M 0 |1547B 1180B| 0 0 | 827 2059 |1257131585
0 3 2 96 0 0| 88M 0 |1480B 1396B| 0 0 | 644 1350 |1257131586
0 4 8 89 0 0| 106M 0 |1158B 1234B| 0 0 | 714 1667 |1257131587
0 3 3 95 0 0| 113M 0 | 821B 694B| 0 0 | 732 1775 |1257131588
0 1 3 96 0 0| 91M 0 | 746B 910B| 0 0 | 637 1408 |1257131589
0 2 7 91 0 0| 101M 0 |1318B 1450B| 0 0 | 704 1564 |1257131590
0 1 1 99 0 0| 99M 0 |1596B 1425B| 0 0 | 684 1489 |1257131591
0 1 4 95 0 0| 89M 0 | 880B 1072B| 0 0 | 625 1362 |1257131592
0 2 3 95 0 0| 135M 0 | 708B 856B| 0 0 | 813 2077 |1257131593
0 3 4 94 0 0| 111M 0 |1436B 1018B| 0 0 | 730 1734 |1257131594
0 2 2 97 0 0| 96M 0 |1703B 1504B| 0 0 | 674 1522 |1257131595
0 2 1 97 0 0| 106M 0 | 557B 586B| 0 0 | 695 1654 |1257131596
0 2 4 95 0 0| 92M 0 | 937B 802B| 0 0 | 632 1401 |1257131597
0 3 5 92 0 0| 131M 0 | 942B 1126B| 0 0 | 812 2010 |1257131598Скорость уже начинает хлябать, но полной уже не выдаёт (под 300-500 МБайт\сек)
WAIT-ы повысились почти до 100%.
Теперь проводим следующий тест в реальных условиях:
запускаем на копировании наш 1 большой файла и начинаем копировать ещё впридачу мелкие (например зеркало Убунты и Сусе), открываем доступ по фтп и запускаем 4 торрента на закачку:
Код: Выделить всё
cp ubuntu-9.10-dvd-i386.iso /dev/null & while read -r xx; do cp $xx /dev/null; done < /files_to_null.list & while read -r xx; do cp $xx /dev/null; done < /files_to_null1.list &Код: Выделить всё
ftpcount
Service class - 35 usersВидим, что наша share выдаёт уже совсем не те результаты:
Код: Выделить всё
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- --epoch---
usr sys idl wai hiq siq| read writ| recv send| in out | int csw | epoch
17 3 8 73 0 0| 47M 3204k| 414k 1578k| 0 0 |1946 1476 |1257134268
4 2 19 76 0 0| 30M 100k| 368k 1258k| 0 0 |2090 1449 |1257134269
3 3 21 75 0 0| 40M 0 | 449k 1239k| 0 0 |2060 1406 |1257134270
5 2 7 87 0 0| 78M 0 | 457k 1162k| 0 0 |2155 1897 |1257134271
4 1 10 85 0 0| 62M 0 | 422k 1282k| 0 0 |2231 1666 |1257134272
4 1 15 81 0 0| 43M 1644k| 447k 1370k| 0 0 |2313 1573 |1257134273
4 2 9 87 0 0| 68M 1048k| 549k 1435k| 0 0 |2532 1925 |1257134274
5 2 9 85 0 0| 63M 124k| 420k 1193k| 0 0 |2159 1768 |1257134275
5 4 15 77 0 0| 67M 0 | 523k 1146k| 0 0 |2233 1832 |1257134276
5 2 19 75 0 1| 64M 0 | 392k 1233k| 0 0 |2216 1754 |1257134277
9 0 6 86 0 0| 18M 3161k| 416k 1326k| 0 0 |2098 1136 |1257134278
18 2 1 81 0 0|2704k 9186k| 518k 1758k| 0 0 |2213 1184 |1257134279
8 1 1 90 1 0| 12M 5976k| 444k 1334k| 0 0 |2185 1015 |1257134280
4 1 5 91 0 0| 35M 181k| 461k 1349k| 0 0 |2237 1496 |1257134281
6 2 15 77 0 0| 44M 0 | 425k 1313k| 0 0 |2254 1582 |1257134282
3 2 23 73 0 0| 37M 1922k| 349k 1252k| 0 0 |2019 1375 |1257134283
5 2 8 86 0 0| 35M 4840k| 478k 1341k| 0 0 |2330 1565 |1257134284Опять же высокие WAIT-ы!! и маленькая скорость.
А если количество пользователей ФТП превышает 70 и на раздаче стоит более 10-15 торрентов (на активной раздаче) + ко всему, необходимо отдавать ещё и по САМБЕ общую шару и с ней сетевая и дисковая активность возрастает. ТОгда машина начиает просто тупить....скачивание фильма по 100Мбитной сети едёт уже со скоростью 2-3 Мбита/сек.
Подскажите куда копать?
Либо это файловая система? Либо дисковая подсистема? Либо неправильно настроенное ядро? Либо ещё что-то?
Спрашивайте, выложи всё необходимое.