Autor |
Sõnum |
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
On Umbutu 64-bit server, kus peaks sees Intel(R) Xeon(R) CPU X3220 prose, mis on Quad-core kirjade järgi ja tehniliselt vist 2x2-core proset. Mõtlesin et kuidas ta seda näitab softi tasemel: 1x4-core või 2x2-core või mida. Üllatus-üllatus näitab üldse 1x1 proset. On see normaalne? Äkki on cored tõesti nii ära virtualiseeritud? Kui ei, siis mis teha?
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
stepping : 11
cpu MHz : 2394.064
cache size : 4096 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 4791.67
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Ka muud vidinad (mpstat) ei indikeeri teist protsessorit:
> mpstat -P ALL
Linux 2.6.24-16-generic (91-143-80-122) 01/06/2010
02:45:28 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
02:45:28 PM all 53.12 0.38 2.92 19.62 0.07 0.30 0.00 23.58 259.44
02:45:28 PM 0 53.12 0.38 2.92 19.62 0.07 0.30 0.00 23.58 259.44
02:45:28 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
|
|
|
|
|
|
|
|
sander85
Vana Pingviin
Vanus: 39
Liitunud: 08.08.2005
Postitused: 4359
Asukoht: Tallinn (vahel ka Virtsu)
Distributsioon: Mageia, Debian, CentOS
|
|
mis versioon ubuntust? biosis kõik okei? mis kernel?
|
|
|
|
_________________
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
sander85 kirjutas: | mis versioon ubuntust? biosis kõik okei? mis kernel? |
Ubuntu 8.04 LTS [Hardy Heron] 64Bit; kerneli info oli vist eespool mpstat-i tulemuses kirjas.
Bios-i otseselt kontrollida on praktikas problemaatiline, masin on kusagil kaugel majutatud, vist Saksamaal. Kui seal võib midagi valesti olla, siis saan muidugi öelda, aga ma ei taha ka niisama oletada (muidu ütlevad et mida need eestlased kah teavad).
|
|
|
|
|
|
|
|
wk
Vana Pingviin
Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
|
|
Kuidagi kahtlane on see info küll, mu arust, ma küll küsiksin serveri kohta üle. Mul Dual-Core AMD Opteron(tm) Processor 1210 kohta ütleb kenasti, et coresid on 2.
|
|
|
|
_________________ Kõike hääd,
WK
|
|
|
|
sander85
Vana Pingviin
Vanus: 39
Liitunud: 08.08.2005
Postitused: 4359
Asukoht: Tallinn (vahel ka Virtsu)
Distributsioon: Mageia, Debian, CentOS
|
|
kui see saksamaal on, siis kui kindel sa oled, et see pole virtualiseeritud? ja et sellele masinale ongi lihtsalt üks tuum välja jagatud..
|
|
|
|
_________________
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
sander85 kirjutas: | kui see saksamaal on, siis kui kindel sa oled, et see pole virtualiseeritud? ja et sellele masinale ongi lihtsalt üks tuum välja jagatud.. |
Eks lõpuni ei või iial teada. Kui on, siis on see liiga hästi varjatud. Kettad oleksid nagu füüsilised (seal on 5TB ruumi), mälu on 8G jne. Need virtuaalmasinad mida ma olen kasutanud/teinud on ikka midagi hoopis lahjemat. Otsisin /var/log/dmesg failist "virtual" võtmesõnu, ei paistnud midagi kahtlast (http://www.dmo.ca/blog/detecting-virtualization-on-linux/ juhendi kohaselt). Kas võib olla et:
a) CPU teised cored on rikkis ja masin (BIOS) on need OS jaoks peitnud (disablenud)? Ma tean et paremad serverid seda oskavad.
b) seesama BIOS saab olla nii kõva teistpidi-virtualiseerija et 4 coret näidatakse OS jaoks ühe CPUna? Kas see on üldse tehniliselt üldse võimalik, ei tea (iseenesest oleks super, kui 4x2GHz cpu-d saaks 1x8GHz-ks virtualiseerida). Aga vist pole seda veel leiutatud.
Wikipedia Xeon artiklist leidsin sellise huvitava lause antud seeria kohta "Unlike most Xeon processors, they only support single-CPU operation". On ideid, mida see tähendada võiks?
Veel natuke masinast infot, kah viitab väga single-core-le:
cat /var/log/dmesg |grep CPU
[ 0.000000] Processor #0 (Bootup-CPU)
[ 0.000000] SMP: Allowing 1 CPUs, 0 hotplug CPUs
[ 0.000000] PERCPU: Allocating 34656 bytes of per cpu data
[ 0.000000] Initializing CPU#0
[ 0.000000] SLUB: Genslabs=12, HWalign=64, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
[ 0.000000] CPU: L1 I cache: 32K, L1 D cache: 32K
[ 0.000000] CPU: L2 cache: 4096K
[ 0.000000] CPU 0/0 -> Node 0
[ 0.000000] CPU: Physical Processor ID: 0
[ 0.000000] CPU: Processor Core ID: 0
[ 0.000000] CPU0: Thermal monitoring enabled (TM2)
[ 0.000000] Brought up 1 CPUs
[ 0.000000] CPU0 attaching sched-domain:
|
|
|
|
|
|
|
|
sander85
Vana Pingviin
Vanus: 39
Liitunud: 08.08.2005
Postitused: 4359
Asukoht: Tallinn (vahel ka Virtsu)
Distributsioon: Mageia, Debian, CentOS
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
sander85 kirjutas: |
pealegi mitme tuuma kasutusele võtmine on ikka pigem eelise loomine.. nende kõigi üheks koondamine linuxi peal küll kasu ei too..
|
See on nüüd vähe teine tema, aga minu arusaam asjast on, et mitmetuumsus pole mitte sellepärast, et see mingiks ülesandeks parem oleks, vaid sellepärast et raw GHz ei suudetud lihtsalt enam tõsta, ning võeti teine strateegia, et hakkame siis tuumi tekitama ja sokutame kogukiiruse probleemi rakendusele. Vaid siis kui kõik rakendused on tõesti nii head, et suudavad kõiki tuumi võrdselt ära kasutada, siis on 4x2GHz samahea kui 8GHz. Aga mitte kunagi parem, sest 8GHz CPU võimsuse saab alati jagada kõrgemal (rakenduse või middleware, nt JVM, ehk ka OS) tasemel niimoodi lõimedesse, et see on sisuliselt sama mis 4 või mis iganes arv eraldi tuumi. Muidugi see middleware peab seda (cpu throttlingut) piisavalt hästi oskama, vaid halva/piiratud mw saabkonstueerida juhuseid kus multi-core on parem single-corest.
Näiteks Google Go on ka minuteada ehitatud just selliseks keskkonnaks, kus arendaja ei pea reeglina eri lõimede vahele ise koormust jagama, see ei ole rakenduse kirjutaja asi.
Linux või mitte, minuteada kõikide tavaliste OS-ide jaoks on CPU ressurss transparentne ja tuumade vahel tööjaotusega peab tegelema rakenduse tase.
Ühesõnaga, multi-core on tegelikult hädalahendus arvutisse kokku suurema võimsuse paigutamiseks.
|
|
|
|
|
|
|
|
sander85
Vana Pingviin
Vanus: 39
Liitunud: 08.08.2005
Postitused: 4359
Asukoht: Tallinn (vahel ka Virtsu)
Distributsioon: Mageia, Debian, CentOS
|
|
jaakl kirjutas: | sander85 kirjutas: |
pealegi mitme tuuma kasutusele võtmine on ikka pigem eelise loomine.. nende kõigi üheks koondamine linuxi peal küll kasu ei too..
|
See on nüüd vähe teine tema, aga minu arusaam asjast on, et mitmetuumsus pole mitte sellepärast, et see mingiks ülesandeks parem oleks, vaid sellepärast et raw GHz ei suudetud lihtsalt enam tõsta, ning võeti teine strateegia, et hakkame siis tuumi tekitama ja sokutame kogukiiruse probleemi rakendusele. Vaid siis kui kõik rakendused on tõesti nii head, et suudavad kõiki tuumi võrdselt ära kasutada, siis on 4x2GHz samahea kui 8GHz. Aga mitte kunagi parem, sest 8GHz CPU võimsuse saab alati jagada kõrgemal (rakenduse või middleware, nt JVM, ehk ka OS) tasemel niimoodi lõimedesse, et see on sisuliselt sama mis 4 või mis iganes arv eraldi tuumi. Muidugi see middleware peab seda (cpu throttlingut) piisavalt hästi oskama, vaid halva/piiratud mw saabkonstueerida juhuseid kus multi-core on parem single-corest.
Näiteks Google Go on ka minuteada ehitatud just selliseks keskkonnaks, kus arendaja ei pea reeglina eri lõimede vahele ise koormust jagama, see ei ole rakenduse kirjutaja asi.
Linux või mitte, minuteada kõikide tavaliste OS-ide jaoks on CPU ressurss transparentne ja tuumade vahel tööjaotusega peab tegelema rakenduse tase.
Ühesõnaga, multi-core on tegelikult hädalahendus arvutisse kokku suurema võimsuse paigutamiseks. |
ei jaga seda arvamust.. viimane uudis on vist see, et mingi inteli uus prose kellati (hetkel küll veel väga külmas, aga siiski) 7GHz'ni.. ja aeg on näidanud, et kõik kiirused, mis üks hetk on saavutatud kõvasti külmutades, on lõpuks saavutatud ka külmutamata..
ma ei tea väga OS'e, mis oskaks 1 tuuma jagada näiteks rakendustele kätte kui 4 Inteli HT tuleb siiski biosist lubada ja ka cpu peab sellisel juhul asja toetama..
kui üks rakendus hõivab kogu cpu jõudluse, siis teised kõrval kuivavad ja ootavad.. mitu tuuma võimaldab siinkohal probleemid paremini lahendada.. kui ka üks rakendus tahab kogu jõudluse võtta, siis on ainult üks tuum 100% peal, kuid teised rakendused saavad teiste tuumade peal rahus edasi joosta..
oletame, et koodi kirjutaja laseb koodi loopi, kui nüüd oleks ainult üks tuum, siis ei ole vahet kui võimas cpu sul on, loopis rakendus hõivab kogu selle ressursi.. koht, kus kaks tuuma on raudne eelis..
|
|
|
|
_________________
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
sander85 kirjutas: | jaakl kirjutas: | sander85 kirjutas: |
pealegi mitme tuuma kasutusele võtmine on ikka pigem eelise loomine.. nende kõigi üheks koondamine linuxi peal küll kasu ei too..
|
Ühesõnaga, multi-core on tegelikult hädalahendus arvutisse kokku suurema võimsuse paigutamiseks. |
kui üks rakendus hõivab kogu cpu jõudluse, siis teised kõrval kuivavad ja ootavad.. mitu tuuma võimaldab siinkohal probleemid paremini lahendada.. kui ka üks rakendus tahab kogu jõudluse võtta, siis on ainult üks tuum 100% peal, kuid teised rakendused saavad teiste tuumade peal rahus edasi joosta..
oletame, et koodi kirjutaja laseb koodi loopi, kui nüüd oleks ainult üks tuum, siis ei ole vahet kui võimas cpu sul on, loopis rakendus hõivab kogu selle ressursi.. koht, kus kaks tuuma on raudne eelis.. |
Ma teadsin, et see näide tuleb kohe. Ma väidan, et sellise situatsiooni teke ei ole mitte CPU süü, ja pole isegi mitte CPU lahendada. CPU ei tea, kas see 100% protsess mitte ei olegi see kõige kriitilisem protsess mille taga kõik teised peavadki ootama (ka see võib vabalt juhus olla); neid prioriteete peab teadma ja korralikult kontrollima kõrgem tase (middleware/OS). Kui viimased oma tööga hakkama ei saa, siis on muidugi asi paha.
Praktikuna ma ise ka ei tea nii head middlewaret mis for(int i=0;true;1=1){}; stiilis koodi rea sama hästi haldaks kui multi-core. Vist vaid high-end unixid oskavad seda teha: tagada et üks (user-space) rakendus ei saaks default üle 1/4 CPU ressursist? Või kui paned virtualiseerimiskihi OS ja raua vahele. Windows ja Linux seda vist ei suuda, seega seal on tõesti multi-core lähenemine õigustatud. Pealegi keskmine PC ei vajagi tänase softiga reeglina rohkem kui 1.5-2 GHz võimsust, ülejäänud cored ongi seal rohkem varuks, kui see põhiline peaks umbe minema.
Ei jõua mina ära oodata, millal süsteemistack raud-bios-virtualiseerimine-os-rakendused muutub iga PC standardiks. Siis see virtualiseerimiskiht olekski middleware millest ma räägin. Täna vist jääb ikka võimsusest puudu, et paratamatu overhead katta.
|
|
|
|
|
|
|
|
sander85
Vana Pingviin
Vanus: 39
Liitunud: 08.08.2005
Postitused: 4359
Asukoht: Tallinn (vahel ka Virtsu)
Distributsioon: Mageia, Debian, CentOS
|
|
inteli osad 4-tuumalised prosed on tänasel päeval sellised, mis on võimelised 3 tuuma välja lükkama ja selle võrra ühte tuuma üle kellama kui see vajalikuks osutub.. aga üldiselt ma leian, et ei saa kunagi olema sellist vahekihti, mis suudaks kindlaks teha, millisel protsessil tegelikult nii palju jõudlust vaja läheb kui ta seda küsib.. intelil on vist plaanis lähitulevikus välja lasta 8-16 tuumalised serveri protsessorid, kus veel iga tuum on ka HT toega.. forgitud protsesside puhul saab see heaks eeliseks olema, väidetavalt pidavat ka win7 seda juba ära kasutada oskama.. OS'i ja muude vahekihtide tööks on siiski protsessid tuumade vahel mõistlikult ära jagada, mitte öelda protsessidele, et sina vot enam rohkem jõudlust ei saa.. sellise asja juurutamine vajaks liiga paljude standardite implementeerimist..
|
|
|
|
_________________
|
|
|
|
jaakl
Uus kasutaja
Liitunud: 06.01.2010
Postitused: 7
|
|
sander85 kirjutas: | inteli osad 4-tuumalised prosed on tänasel päeval sellised, mis on võimelised 3 tuuma välja lükkama ja selle võrra ühte tuuma üle kellama kui see vajalikuks osutub.. aga üldiselt ma leian, et ei saa kunagi olema sellist vahekihti, mis suudaks kindlaks teha, millisel protsessil tegelikult nii palju jõudlust vaja läheb kui ta seda küsib.. intelil on vist plaanis lähitulevikus välja lasta 8-16 tuumalised serveri protsessorid, kus veel iga tuum on ka HT toega.. forgitud protsesside puhul saab see heaks eeliseks olema, väidetavalt pidavat ka win7 seda juba ära kasutada oskama.. OS'i ja muude vahekihtide tööks on siiski protsessid tuumade vahel mõistlikult ära jagada, mitte öelda protsessidele, et sina vot enam rohkem jõudlust ei saa.. sellise asja juurutamine vajaks liiga paljude standardite implementeerimist.. |
Nõus, see ei ole lihtne ja nõuab palju tööd ja süsteemide uuendamis. Ilmselt peaks see OS tasemel käima, sest OS-aluse MW (VM)-le on juba väga raske edastada konkreetse protsessi prioriteedi parameetreid. Ilmselt ei ole see selle-järgmise aasta teema, aga siiski ma olen inimvõimete suhtes optimistlik, ja arvan et see tehakse ära.
Vaja seda aga on, sest tegelikult just tavaarvutitel ette tulev kõige raskem arvutusmahukas ülesanne: video kodeerimine (videokõned, HD-youtubed jms, ka 3D visuaalid) ei ole (minuteada) lõpuni hästi paralleliseeritavad ja armastavad ühte super-CPUd. Uuematel Intelitel on see "VPU" (integreeritud spetsiaalne video processing extension kus on peamised codecid rauas realiseeritud) stiilis lahendusega, sest raw GHz on ikka väga raske kahekohaliseks numbriks ajada.
|
|
|
|
|
|
|
|
|
|