Автор Тема: Изчисляване натоварването на сървър  (Прочетена 3481 пъти)

daniel_vulchev

  • Напреднали
  • *****
  • Публикации: 177
  • Distribution: NetBSD, Slackware, Debian
  • Window Manager: Console/Gnome
    • Профил
    • WWW
Здравейте, да запитам как приблизително да изчислим до какво натоварване ще издържи дадена машина пример:
Имам една машинка с E5-2630 16 GB ram ddr3 ECC 500 gb raid 5  с kernel 2.6.32-5-amd64 с три виртуални машини  пуснати към момента искам да пусна още една но да не си играя по метода проба грешка искам да взема джобния калкулатор и да сметна приблизително за какво иде реч.
Активен

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Изчисляване натоварването на сървър
« Отговор #1 -: Aug 07, 2013, 17:02 »
И на мен ми е любопитно дали би могла да се калкулира по някакъв начин, но от личен опит с боравенето с компютри съм установил, че над определено  запълване на рам-а със стартирани програми, вече процесора не успява да обработи всичко това и дори и да има допълнителна рам е безсмислено.

Примерно с един стар компютър с атом процесор и 2ГБ рам и с УинХП беше, като му се запълни рама до 1,2-1,3 и ставаше някакъв абсолютен ужас да преминеш само от едното на другото приложение.
С друг пък който беше с П4 3200+, този момент идваше към 1,8ГБ запълване пак с ХП. Тогава тъкмо започвах да се интересувам от Линукс.
Сега съм с и5 и 8ГБ, но може да понесе ми се струва още не кой знае колко много и поради тази причина не съм му добавил и още 8.
Но за виртуалки има значение и дисковия масив колко е бръз щото в един момент може и да се получи, че рам стига, процесор не вдига повече от 50-70% натоварване, а виртуалките работят бавно.
Активен

daniel_vulchev

  • Напреднали
  • *****
  • Публикации: 177
  • Distribution: NetBSD, Slackware, Debian
  • Window Manager: Console/Gnome
    • Профил
    • WWW
Re: Изчисляване натоварването на сървър
« Отговор #2 -: Aug 07, 2013, 17:09 »
Контролера е скромен LSI MegaRAID SAS 9260-4i
Активен

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Изчисляване натоварването на сървър
« Отговор #3 -: Aug 07, 2013, 17:48 »
Моя на сървъра е още по-скромен. 9240-4i с 4х1ТБ Сигейт 7200.12 в райд5, а процесора е Е3 1230 3,2Гх с 16ГБ рам и с 8 ХП-та с по 2ГБ рам натоварени нямаше проблем докато не им хакнах антивирусни! С антивирусните, 3 като се натоварят и четвъртата почва да спича, а процесора е на 50-60%. Сега съм им сложил панда клоуд и горе-долу по-бива.
С ESXi 5 e.
« Последна редакция: Aug 07, 2013, 17:50 от backinblack »
Активен

kifavi8024

  • Новаци
  • *
  • Публикации: 0
    • Профил
Re: Изчисляване натоварването на сървър
« Отговор #4 -: Aug 07, 2013, 21:58 »
С какъв виртуализатор реализираш виртуализацията - KVM или?
Извинявам се, виртуализацията е чрез VirtualBox, както се вижда от снимката :)
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Изчисляване натоварването на сървър
« Отговор #5 -: Aug 07, 2013, 23:43 »
Това нещо не става с прости сметки, нещата никога не са прости. На първо време как ще дефинираш "натоварване", CPU load? Утилизация на паметта? Bandwidth? I/O натоварване? После за какво натоварване говорим, някаква средна стойност? Worst case?

За да може да се правят някакви много груби сметки, трябва да имаш идея какви услуги ще работят и съответните услуги какви ресурси и как евентуално ги използват. Въпросните услуги обикновено имат някакви конфигуруеми лимити и можеш да смяташ евентуално средното натоварване (за което няма как да минеш без "пробите", демек инсталираш някакъв софтуер от сорта на ganglia или zabbix и следиш как протичат нещата във времето). Оттам можеш грубо да сметнеш и worst case сценария, макар че нещата не винаги скалират линейно и за това трябва да знаеш добре как работи софтуера. Според мен много точни сметки няма как да си направиш, но можеш да направиш консервативни предвиждания с известен резерв. Ако не искаш компромиси с качеството на услугите съответно ги правиш спрямо worst case-а.

Когато нямаш идея какъв workload ще търкаляш, разбира се е трудно да се правят предвиждания.

Също така, дори и да имаш някаква груба сметка, нещата може да са доста tricky, особено с виртуализацията. В общи линии, утилизацията на паметта е най-лесно контролируемото и най-предсказуемото нещо, същевременно за жалост е и рядко bottleneck-а в цялата работа, най-малкото защото паметта е евтина и особено ако работиш с java приложения, където heap size-а лесно се контролира, нещата стават прости.

Също директно можеш да алокираш  VCPU-та, което е колкото хубаво, толкова и гадно когато виртуалните машини не търкалят CPU-интензивни приложения.

Индиректно донякъде можеш да контролираш I/O и мрежовото натоварване като ползваш различни мрежови интерфейси и/или различни блокови устройства, само че тук нещата загрубяват доста. Примерно споделянето на едно и също дисково устройство прави нещата неконтролируеми, без значение дали и на какви дялове се намират и дали се ползва LVM, особено с механични дискове (със SSD теоретично би могло да се направи някакъв load-balancing с weight при I/O-то, вероятно има такива експерименти, но това би трябвало да важи само за четенето, при писането има хардуерен wear-leveling и съответно недетерминирано време). Дори и на различни дискови устройства обаче, bottleneck-а може да е общата шина, която споделят.

Съответно с мрежовите ресурси е същото - няма как да си абсолютно сигурен че едната виртуална машина ще използва примерно точно 30% от честотната лента на интерфейса, можеш разбира се да заделяш различни интерфейси, но това не е особено feasible по разбираеми причини, а и гранулярността така е доста груба.

Та...предлагам на първо време да идентифицираш workload-а, да си направиш замервания за някакъв период, без значение с какъв софтуер, дали ще е с красиви графики като ganglia или пък нещо грозно като sar. След това за да хванеш worst case-овете или се опитай да направиш сметките с презюмпциите за линейно нарастване на утилизацията на ресурсите с броя на клиентите и съответно там лимита на максималния брой клиенти (което може да е доста лоша идея), или си направи stress test-ове с подходящ софтуер (което пък е трудно да се направи коректно). Така ще знаеш ако ще deploy-ваш нови виртуални машини със сходен workload горе-долу докъде опират възможностите. Ако не е сходен...ами внимателно, на стъпки, със замервания, с тестове. И накрая като си правиш финалните сметки винаги си оставяш един хубав резерв.

Всичко това има смисъл само ако предоставяш някакви услуги и всичко това има значение. Ако просто си експериментираш и си играеш, тогава не си заслужава усилията, в крайна сметка няма голямо значение и метода проба-грешка върши работа.




Активен

"Knowledge is power" - France is Bacon

daniel_vulchev

  • Напреднали
  • *****
  • Публикации: 177
  • Distribution: NetBSD, Slackware, Debian
  • Window Manager: Console/Gnome
    • Профил
    • WWW
Re: Изчисляване натоварването на сървър
« Отговор #6 -: Aug 08, 2013, 09:05 »
Та в случая не експериментирам има инсталирали три машини една 2003 server другите две са xp. 2003 server е леко по натоварена бази данни(oracle, interbase и темподобни) и файл. Едното хп е за антивирусен софт другото хп е за общо ползване. Всяка машина е с отделен net interface.  клиентите са около 30  . Та идеята ми е , че искам да местя един сървър (по скоро сървърните приложения на една система) и за да не си играя да я инсталирам да тествам работили както трябва на виртуалка да се ориентирам горе доле ще държили към другата система няма да има натоварване от към клиентите но пък самата система е с мс скл и си е доста тромава. За да я тествам по метода проба грешка или трябва да я инстална или да клонирам сегашния компютър който го играе за сървър (за което нямам време  >:D) .Все пак ми се струва по добре да ползваме малко математиката отколкото да правя врътки ще работили нямали. За четвъртата виртуалка също имам мрежов адаптер. Дъното е двупроцесорно в момента е с едно CPU има варианти да станат две рама да се увеличи мога да сложа едно ссд за виртуалката но търся вариант да разбера как може да се посметне малко с химикал и лист има ли смисъл от ъпграде или не  към момента  [_]3
Активен

bezimenen

  • Напреднали
  • *****
  • Публикации: 29
    • Профил
Re: Изчисляване натоварването на сървър
« Отговор #7 -: Aug 15, 2013, 12:26 »
С един уин 2003 и 2 експита ще ти останат ресурси за още бая неща:) Та слагай смело. Прости изчисления едва ли ще могат да се направят при положение, че не споделяш какви ще са приложенията. Ама прост пример: На 1 хп ще му стигне 512 рам и не много процесор. Уин 2003 едва ли повече от 2 гб рам и малко процесор.
Активен

daniel_vulchev

  • Напреднали
  • *****
  • Публикации: 177
  • Distribution: NetBSD, Slackware, Debian
  • Window Manager: Console/Gnome
    • Профил
    • WWW
Re: Изчисляване натоварването на сървър
« Отговор #8 -: Aug 23, 2013, 10:25 »
Та и аз така си мисля , че има още място за виртуалки. Приложенията са oracle 10 sql и тем подобни.
Активен

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Изчисляване натоварването на сървър
« Отговор #9 -: Aug 23, 2013, 13:10 »
Тези оракълски бази нямаха ли и линукс версии, та ще ги туряш на уиндоус виртуалки дето и антивирус ще ти мори дисковете!!!?
Процесора ще носи, па още от сега, ако туриш и другия ще е по-добре, щото като излезе нов модел и такъв същия ще го търсиш някъде залежал, че може и по-скъп да го намериш, но ще ти требе поне 1000МБ скорости на четене и запис на дисковете да осигуриш, че да не се чудиш що виртуалките "замръзват" а процесорите не се товарят.
Виж ми другата тема! В момента с този проблем се блъскам.
Активен