"Аптымізацыя работы шмат'ядравых працэсараў" ці "Ручное размеркаванне загрузкі ядраў". [CPU Control] [абнаўленне]

  1. Аптымізуем працу працэсара, размяркоўваючы нагрузку па ядрах.
  2. Пасляслоўе.

Вітаю, дарагія сябры, чытачы, знаёмыя і ўсякія іншыя асобы.

Сёння я вырашыў абнавіць і дапоўніць адну з старых і няпоўных артыкулаў па аптымізацыі. Так што .. паехалі Сёння я вырашыў абнавіць і дапоўніць адну з старых і няпоўных артыкулаў па аптымізацыі

Не гледзячы на ​​тое, што шмат'ядравыя працэсары (і ўжо, тым больш, шматпрацэсарныя кампутары) даўно ўвайшлі ў наша жыццё, далёка не ўсе праграмы ўмеюць карэктна ўзаемадзейнічаць з некалькімі ядрамі, а гэтак жа пісьменна выкарыстоўваць і аптымізаваць даступныя сістэмныя рэсурсы.

Не гледзячы на ​​тое, што шмат'ядравыя працэсары (і ўжо, тым больш, шматпрацэсарныя кампутары) даўно ўвайшлі ў наша жыццё, далёка не ўсе праграмы ўмеюць карэктна ўзаемадзейнічаць з некалькімі ядрамі, а гэтак жа пісьменна выкарыстоўваць і аптымізаваць даступныя сістэмныя рэсурсы

Ужо давненько я сутыкнуўся з цікавай праграмай, якая дазваляе кіраваць прыярытэтам выкарыстання ядраў працэсараў, г.зн. фактычна размяркоўваць нагрузку на тое ці іншае ядро. Пра яе і пойдзе гаворка ў гэтай невялікай артыкуле.

Наогул кажучы, працэсар з'яўляецца адным з ключавых, калі не самых галоўных, кампанентаў, якія адказваюць за прадукцыйнасць у сістэме, таму мае сэнс карэктна і правільна выкарыстоўваць яго магчымасці. Глабальна, у гэтым кірунку, з пункту гледжання праграмнай аптымізацыі ёсць два шляхі:

  • У выпадку з шмат'ядравымі працэсарамі, - гэта размеркаванне нагрузкі па ядрах. Справа тут у тым, што першапачаткова не ўсе працэсы могуць выкарыстоўваць адэкватна усе ядра ў сістэме (т.е няма падтрымкі шмат'ядравых) або карэктна займаць тыя з іх, што не занятыя аблік іншых прыкладанняў і патрэб, а таму мае сэнс ўручную (або аўтаматычна) разносіць прыкладання на асобныя ядра ці групы ядраў, для карэктнага размеркавання нагрузкі і / або ушустрения працы
  • У выпадку з усімі працэсарамі, т.е аднаядзернымі у тым ліку, - гэта праца з прыярытэтамі сістэмы. Справа ў тым, што па змаўчанні Windows прысвойвае ўсім запускае працэс нармальны прыярытэт, што ставіць прыкладання у роўныя ўмовы ў плане атрымання працэсарных магутнасцяў. Аднак, пагадзіцеся, што, скажам, 3D гульня і звычайны нататнік, - гэта крыху розныя прыкладання і, відавочна, што гульні трэба больш рэсурсаў працэсара ў рэальным часе, т.да знаходзячыся ў трохмерным дадатку Вы наўрад ці ўзаемадзейнічаеце з гэтым самым нататнікам і ён вам не патрэбны да пары да часу (ды асаблівых магутнасцяў працэсара нататнік амаль не трэба, - там той праграмы то .. раз два і няма). Адсюль, накшталт як лагічна выцякае, што прыярытэты ў розных прыкладанняў павінны быць розныя (асабліва ў часы шмат'ядравых то), але на практыцы гэта далёка ад рэальнасці.

І ў тым і ў іншым выпадку, вырашыць праблему дапамогуць праграмы для таго прызначаныя. Пра размеркаванне гаворка пойдзе ніжэй.

Аптымізуем працу працэсара, размяркоўваючы нагрузку па ядрах.

Што гэта за размеркаванне нагрузкі і як яно выглядае? Кажучы простай мовай, можна ўручную, запусціўшы праграму, павесіць усе сістэмныя службы на просчитывание першым ядром, антывірус і фаерволл другім, браўзэр і аську трэцім і тд і тп. Падобныя маніпуляцыі, бывае павышаюць прадукцыйнасць сістэмы за кошт больш адэкватнага выкарыстання працэсарных ядраў, г.зн. у пэўным сэнсе атрымліваецца такая сабе пашыраная сілком падтрымка шмат'ядравых.

У гэтым нам дапаможа такая праграма, як CPU Control. На жаль, оная некалькі састарэла і можа падтрымліваць не ўсе працэсары, але для рашэнняў 2-4 ядра падыдзе цалкам. З больш многоядреными версіямі не факт. Гэтак жа, што сумна, але хочацца адзначыць, што маецца падтрымка не ўсіх версій працэсараў, што, зноў жа, звязана з даўнасцю абнаўлення праграмы, але, думаю, не перашкаджае ўсё ж такі некаторым паэксперыментаваць.

Уласна, праграма цалкам бясплатная, падтрымлівае рускую мову, не патрабуе ўсталёўкі (можна цягаць на флешке) і гранічна простая ў кіраванні. Уладальнікам одноядерных працэсараў наўрад ці прынясе нейкую карысць, калі толькі аднаядзерны працэсар не мае ў сабе функцыю разбіцця фізічнага ядра на два лагічных.

Спампаваць можна прама з майго сайта, а менавіта адсюль .

Пасля запуску бачым прыкладна такую ​​карціну:

Дзе адразу ідзем на ўкладку "Options" і задаем птушачкамі "Аўтазапуск з Windows", "Мінімізаваць", мова і ставім галачку 4 ядра, калі ў нас іх, уласна, 4 ці не ставім, калі, уласна, іх два.

Далей ёсць некалькі шляхоў, а менавіта:

  • Ручной, т.е калі мы задаем для кожнага працэсу ўсё самі, т.е на якім ядры / ах ён будзе .. м .. апрацоўвацца
  • Аўто, т.е, калі праграма сама прызначае размеркаванне па ядрах
  • CPU1, т.е, калі прыярытэт аддаецца першаму ядру
  • CPU2, т.е, калі прыярытэт аддаецца другому ядру
  • .

Апошнія два нас не цікавяць, бо ідэя перадачы нагрузкі кудысьці ў адно месца мне не зразумелая. Мы як-ніяк займаемся аптымізацыяй, а не наадварот Апошнія два нас не цікавяць, бо ідэя перадачы нагрузкі кудысьці ў адно месца мне не зразумелая . Таму будзем працаваць з першымі двума.

Для пачатку пару слоў пра "Аўта". Гэта даволі зручны рэжым, калі няма асаблівага жадання затлумляцца з тонкай наладай або ведаў на гэтую самую наладу не хапае. Таму можна выбраць гэты рэжым і адзін з 9 профіляў для яго, якія, на базе нейкіх правілаў, размяркоўваюць прыкладання па ядрах. Так можна атрымаць нядрэнны прырост прадукцыйнасці без асаблівых праблем, асабліва, калі некаторы час повыбирать правільны профіль пад Вашу бягучую сістэму.

Другі варыянт, як ужо гаварылася, - гэта рэжым "Ручной". Ён больш складзены, т.к патрабуе пэўнага разумення канцэпцыі працы сістэмы, прыкладанняў і тп.

к патрабуе пэўнага разумення канцэпцыі працы сістэмы, прыкладанняў і тп

Перайшоўшы ў гэты рэжым, Вы зможаце самі размяркоўваць працэсы па ядрах або групам ядраў. Робіцца гэта шляхам вылучэння аднаго або некалькіх працэсаў і наступным націскам правай кнопкі мышкі. Тут уласна, CPU і яго нумар - гэта нумар ядра. Г.зн. калі Вы хочаце павесіць працэс на 4 -ае ядро, то выбіраеце CPU4, калі на 1 -ае і 3 -тье, то CPU 1 + 3, і тд. Думаю, што ідэя ясная. Зараз аб тым як лепш размяркоўваць.

Глабальна, мае сэнс развалакаць працэсы на групы, а рэсурсаёмістай дадаткам выдзяляць усе ядра адразу. Т.е, напрыклад, фаерволл і антывірус аддаць на апеку 3 + 4 ядраў, сістэмныя дробныя працэсы, а так жа невялікія праграмы, накшталт аські, Punto Switcher і іншую шушера на 1-ае, гульні-фотошоп-іншае-цяжкае на 1+ 2 + 3 + 4. Альбо, як варыянт, паспрабаваць усё павесіць на ўсё і паглядзець, што будзе.

Маніторыць нагрузку на ядра можна ў тым жа дыспетчару задач. Важна ўключыць у ім маніторынг нагрузкі на ядра, што робіцца па кнопцы "Выгляд" - "Выснова часу ядра" і "Выгляд" - "Загрузка ЦП" - "Па графіку на кожны ЦП". У ідэале ж такі рабіць усё гэта не ў рэжыме прастою адразу пасля запуску кампутара, а ў рэжыме загружанай сістэмы, т.е пры запушчаных рэсурсаёмістых прыкладаннях, накшталт гульняў, фотошоп ці што там у Вас есць рэсурсы.

Дарэчы, вось на 4 -х ядрах нават у аўтаматычным рэжыме прырост прадукцыйнасці значна адчувальны, затое на двух чамусьці нават у ручную не заўсёды атрымліваецца дасягнуць моцы.

У агульным і цэлым тут велізарнае поле для эксперыментаў, якое Вам, спадзяюся, будзе вывучыць, бо ў кожнага свая сістэма, набор праграм і ўсё такое іншае. Поле, дарэчы, міннае, бо лёгка можна дамагчыся зваротнага эфекту замест аптымізацыі, але затое як цікава пакалупацца У агульным і цэлым тут велізарнае поле для эксперыментаў, якое Вам, спадзяюся, будзе вывучыць, бо ў кожнага свая сістэма, набор праграм і ўсё такое іншае . Паспрабуйце выкарыстоўваць розныя профілі ў авторежиме або ручную наладу, каб дамагчыся максімальнай прадукцыйнасці на Вашым кампутары.

Пасляслоўе.

У двух словах как-то так. Хтосьці вядома скажа, што не варта ўсім гэтым затлумляцца дзеля колькі вось адсоткавага прыросту і плыўнасці працы, - Ваша права. Я люблю важдаецца з сістэмай і даводзіць яе хуткасць, зручнасць і ўсё такое іншае да новых вышынь, хай і не заўсёды больш і х, але затое б пра льших.

Увогуле, рэкамендую хоць бы паспрабаваць Увогуле, рэкамендую хоць бы паспрабаваць

Што гэта за размеркаванне нагрузкі і як яно выглядае?