VCPU vs Physical CPU

Hi,
Just trying to get my head around vSphere with possible future implementation...
From what I understand from reading various white papers etc with HT enabled on physical hardware a single vCPU is/can be equivalent to a single HT thread of a physical core CPU ie Quad core(8 threads) = 8 vCPU's ...correct ?
So then when SAP tells you to configure eg database parameters to the number of cores do you take into account the physical or virtual aspect(should a vCPU be configured to a single core in other words) ? When I see benchmarks from SAP eg [this benchmark|http://download.sap.com/download.epd?context=B7691794A7D3E12043C201290ABF37F5DED04E103D4E310018D06CBF7953BE17F69E02BCFBFF4510737F16C3ADA5246C] ...are they using HT or not(it isn't very clear, unless I am missing something) ?
Thanks.
Nelis

Hi Nelis,
1 vCPU = 1 HEC = 1 HT thread on an HT enabled host ?
Yes.
...phew, difficult to get a straight answer
Yes.
The problem is that resource management is a very dynamic topic. I don't want customers to follow straight recommendations, because afterwards I have to process the tickets customers are opening because of bad performance. In the most cases, the reason for this is the lack of sizing / determination of expected workload. And that they don't read the Resource Management Guide...
Nevertheless, let's make an example:
You have an ESX server with 8 cores, HT enabled, therefore it is capable to schedule 16 vCPUs at the same time. Well, not exactly, because HEC 0 is always reserved for the Console OS of ESX. So you have 15 vCPUs to execute your stuff.
Now you have three VMs: two VMs with 8 vCPUs each, one VM with 4 vCPUs. In that case, you have an overcommitment of 5 vCPUs - which is absolutely not a problem for VMs of an average load.
Let's assume two VMs are idle and one 8 vCPU VM gets fully utilized. In that case, this VM gets the processing resources of the whole ESX server, as the vCPUs in an HT environment usually are getting scheduled on different cores. So the workload on each vCPU can utilize the full core because the other thread on the core is idle. Only one vCPU has to share Core 0 (which contains HEC 0) with the ESX Console OS.
Now, let's assume every of the three VMs has a utilization of 75 %, therefore the ESX host would also be fully utilized. Don't think like "how many HECs does the 4 vCPU machine have now". If you count in HECs, you could assume that it uses 3 HECs and 1 HEC (the view from inside the guest machine would be: 1 CPU) would be "offline" or something. This IS NOT the case. The guest machine utilizes all of its 4 CPUs it sees and the ESX CPU scheduler schedules the workload among the available HECs.
If you want to prioritize a certain VM so that its scheduling is granted no matter how big the overall workload is, you can set reservations. And because the ESX does not count in HECs to schedule a machine's workload, the reservation is given in MHz because this is the smallest unit of processing power the ESX CPU scheduler is aware of.
So if you are more confused than before - read the Resource Management Guide. Some say it has a much better wording than I have
Kind regards,
Matthias

Similar Messages

  • Physical cpu to virtual cpu ratio for LYNC 2013 FE

    what
    should be the physical cpu to virtual cpu ratio for LYNC 2013 FE and Edge server, it is same like exchange 1:1 ?

    Putting this here as well:
    I don't believe this is documented anywhere.   I typically see 6 cores, but I've run with 4 or 8 but in the end it's all about watching performance.
    System Center Advisory for Lync can complain if it's not at least 8.
    http://support.microsoft.com/kb/2877496
    Please remember, if you see a post that helped you please click "Vote As Helpful" and if it answered your question please click "Mark As Answer".
    SWC Unified Communications

  • Physical CPU? or multicore?

    I've asked the same question in Oracle-l...For those who are not in the mailing list.. here it goes...
    >
    With the release of Intel (Nehalem) 5500 series, which is 45nm and I believe also supports multicore and hyperthreading. There are some things going on my mind..So from a single socket (Nehalem), quad core and HT enabled. You could see 8 processors when you do "cat /proc/cpuinfo"
    But, from the performance perspective. Which is better?
    Having 8 physical CPUs? Or Having 1 Physical CPU with quad core and HT enabled?
    (Well, we know the license implications of 8 physical CPUs).. :)
    But for the performance engineers and capacity planners. I'd like to hear your opinion.
    >
    - Karl Arao
    karlarao.wordpress.com

    First, I would be happy with one multi-core CPU instead of multiple separate single core CPUs. So quad core is good for me. There are several caveats to this, related to things that would impact the effective performance of each core. So things like clock speed, cache sizes - both on chip and off chip - and some other things are all important. But assuming the clock speed is no slower, and the cache sizes no smaller too, then multi-core is generally good. You get the throughput of 4 CPUs for the price of 1, and it only needs the space of one on a motherboard. Hence all the costs of the system are less.
    Second I would avoid any virtualization within the cores completely. Whether it is Hyper-Threading or Sun's Chip Multi-Threading (CMT) or something else. Virtualization of CPU cores hides what is really happening inside, and decreases single thread performance. Clearly each core can only ever execute one instruction at a time, from one thread at a time. So although any internal multi-threading within a core is sharing the core between multiple threads for greater overall efficiency, each individual thread actually gets executed on the core less often due to the sharing which results in slower performance per thread.
    Yes, I would take a quad core CPU with 4 real, separate execution cores. But I would disable any virtualization within the cores that make each real core look like multiple virtual CPUs. Oracle will charge you by the number of CPUs visible to the operating system. With virtual CPU cores you will need to buy Oracle licenses for each of them. Disabling virtualization means that you get better performance and only need to buy the minimum number of Oracle licenses.
    John Brady

  • CPU_COUNT and physical CPU

    Hi,
    In order to save license cost and monitoring the CPU usage at OS level, we are going to disable 2 cores from each CPU at BIOS level. So after making this change, will the database cpu_count value automatically changes?
    Currently we are using RHEL 5, 2 CPU (Quad core) and CPU_Count shows the value as 16 (this parameter is not set in the init.ora file)
    Please advise.
    Thanks
    Neel

    I believe that physical partitioning such as turning off cores is acceptable to change what you need to license. However, are you not already licensed for x processors?
    If you have 10 licenses and you want to pay support for just 8, then you would have to pay for 8 new licenses. At lest that was the rule when I checked earlier this year.
    Determining the license requirement is also more complicated that what this thread may indicate. For standard edition you consider just the number of sockets (CPUs), for enterprise edition you consider the number of cores. In addition different platforms have different ruls for how you count the cores to pay for. I think all x86 platforms gives you 50% of the cores for "free". Meaning you would pay for two licenses in a single socked quad core machine.
    Licensing is extremely complicated and I'd recommend you check with your sales rep + get and special agreement in writing or email.

  • 4 virtual CPUs are how much physical CPU core

    Hi Everybody,
    I've two VMs with 4 VCPU per VM.
    First VM is created on VMware the second VM is on Oracle Virtual Server 3.1.1.
    The VMware server is on the same HW architecture as Oracle VM Server (two blade as twins).
    I've created Oracle database server 11gR2 on both VM.
    The Enterprise Manager Cloud Control "Database - Performance Home" page shows 4 CPU Cores in case of VMware VM,
    but only 1 CPU Core in case of Oracle VM.
    I'd like to understand why.
    Help me please.
    Regards,
    Battila

    Did you set processors and the max processors the same on the VM guests?
    One CPU is one CPU core. If you do not use CPU pinning..... CPU core allocation is load balanced across all cores in the system. When you use CPU pinning. (Which you must do in a oracle database to adhere to licensing requirements where they apply) CPU cores are dedicated to the VM guest and not load balanced. You can overcommit CPU resources in Oracle VM. In other words. You can set max CPU across all VM guests on a single VM server to be greater than the total amount of CPU cores available in the system. Check out article 464754.1

  • Pinning physical CPU cores for VMs

    Hi all,
    Let's assume we have OVM Server pool on two-node Dell R900 Hosts, FC switches and SAN. One server is acting as the Server Pool Master and Utilty Server, as well as the OVM Server. The other Dell R900 server acts as the OVM Server. Both Dell servers have two quad-core processors and are configured as active/passive. VMs are meant to be on SAN but will need memory and CPU from the phyisical servers in two-node Dell r900 hosts.
    Is it possible to specify cores for the first VM as cpus='0,1,2,3' and the second VM as cpus='4,5,6,7' in both vm.cfg to avoid the situation when they will both use the same first four cores on the same phyisical server? I know it is more expensive lto use all 8 cores but is inevitable since the two applications in two VMs will need a lot of processing power.
    What would be your recommendation how to configure vm.cfg and cpus parameter for two different VMs?
    Cheers,
    Andrei

    I am in a very similar position where we have 2 CPU license for Oracle DB. I would like to use this to run two separate databases on separate OS instances. One will be an OBIEE database and the other will be an Oracle Retail database. I'd like to assign both guests CPU 0,1,2,3 and let them share the CPU resources but I don't know if you can do that with "Hard Partitioning".
    Interesting side note - since the servers I bought are running the Intel X5680 CPU's they have the new style Nehalem hyperthreading. This means that on my 2 socket server I have a total of 12 CPU cores (six core CPU's) and each core has two threads. This shows up as 24 CPU's on the Oracle VM server. If I read the licensing correctly I can run my 2 CPU's on 4 cores which means I should be able to assign 8 CPU instances and meet the database CPU licencing requirements - RIGHT?! - thoughts?

  • How do I find the number of physical CPUs , number of cores in OEL ?

    In RHEL , it is easy to find the number of Physical CPUs and the number of cores within each CPU
    -- Ouput from Red Hat Enterprise Linux 5.4
    -- This a real machine. Not a VM
    $ cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 46
    model name      : Intel(R) Xeon(R) CPU           X7550  @ 2.00GHz
    stepping        : 6
    cpu MHz         : 1995.048
    cache size      : 18432 KB
    physical id     : 0              --------------> This will give info on the physical CPU
    siblings        : 8
    core id         : 0
    cpu cores       : 8              --------------> This will give the number of cores within a CPU
    apicid          : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 11
    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 syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
    bogomips        : 3990.09
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 44 bits physical, 48 bits virtual
    power management: [8]Output from Oracle Linux . Physical CPU Id and Number of Cores info is missing.
    -- Output from Oracle Enterprise Linux 6.3
    -- This is a virtual machine created using Virtual Box
    -- Processor ID , number of cores is missing
    $ cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 42
    model name      : Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz
    stepping        : 7
    cpu MHz         : 2298.627
    cache size      : 6144 KB
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 5
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up rep_good nopl pni monitor ssse3 lahf_lm
    bogomips        : 4597.25
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 36 bits physical, 48 bits virtual
    power management:Is this the expected output in Oracle Enterprise Linux ? If so, how can I find the number of Physical CPUs and the number of cores within a Physical CPU in OEL?
    Is this info missing because I am running OEL in a virtual machine ?

    Oracle Linux behaves exactly like Red Hat in this matter an /proc/cpuinfo can be used for that. I guess this is because you have set up VirtualBox to only assign one virtual CPU to your guest Linux.
    processor     : 0
    vendor_id     : AuthenticAMD
    cpu family     : 15
    model          : 33
    model name     : Dual Core AMD Opteron(tm) Processor 275
    stepping     : 2
    cpu MHz          : 1000.000
    cache size     : 1024 KB
    physical id     : 0
    siblings     : 2
    core id          : 0
    cpu cores     : 2
    apicid          : 0
    initial apicid     : 0
    fpu          : yes
    fpu_exception     : yes
    cpuid level     : 1
    wp          : yes
    flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good extd_apicid pni lahf_lm cmp_legacy
    bogomips     : 1994.47
    TLB size     : 1024 4K pages
    clflush size     : 64
    cache_alignment     : 64
    address sizes     : 40 bits physical, 48 bits virtual
    power management: ts fid vid ttpAnother example is this one, OEL 5.6 inside of VirtualBox but with 2 virtual CPUs assigned:
    [root@oel56proxy ~]# cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 23
    model name      : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
    stepping        : 10
    cpu MHz         : 2064.652
    cache size      : 6144 KB
    physical id     : 0
    siblings        : 2
    core id         : 0
    cpu cores       : 2
    apicid          : 0
    fdiv_bug        : no
    hlt_bug         : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 5
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc pni ssse3 lahf_lm
    bogomips        : 4129.30
    processor       : 1
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 23
    model name      : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
    stepping        : 10
    cpu MHz         : 2064.652
    cache size      : 6144 KB
    physical id     : 0
    siblings        : 2
    core id         : 1
    cpu cores       : 2
    apicid          : 1
    fdiv_bug        : no
    hlt_bug         : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 5
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc pni ssse3 lahf_lm
    bogomips        : 7494.15I have not tried to replicate this with a VM that only has one vCPU assigned but I guess that is why you only see one CPU and no processor_id and so on.
    Bjoern

  • Relative Weight and vCPU allocation query

    Hi all
    I've done a lot of reading around this subject mainly starting here:
    http://social.technet.microsoft.com/wiki/contents/articles/1234.hyper-v-concepts-vcpu-virtual-processor.aspx
    So I know the technical descriptions and some of the background but there is one key area on which I am seeking some clarification if possible.
    Most of my Hyper-V experience is with 2008 and 2008R2 so that's what I will be asking about (but it would be useful to know if 2012 changes anything).
    I understand the concept of virtual CPUs (vCPU) as given to a VM via the VM settings dialog box. I understand that giving a VM 1 to 4 vCPUs does not give the VM any sort of 1:1 or exclusive right to any of the parent's CPU cores. My understanding is that
    (basically) the parent server's cores are formed into a 'pool' and each VM is given a 'time share' of this pool of CPU. I know it is more complex than that due to the way threads may not easily be moved from core to core but let's ignore that!
    I understand the 'relative weight' option is used to distribute the 'grunt' from the pool of parent CPU to the VMs such that each VM gets a proportion of the parents CPU-pool as per the ratio of the relative weight scores.
    So as an arbitrary, simplified example let's imagine the parent has 2 physical quad core CPUs running at 2.0Ghz. So that's 8 cores running at 2Ghz. So let's imagine the CPU-pool 'grunt' is 16Ghz. (Grunt could be also called 'power', 'horsepower' etc.) I
    know it doesn't work out quite like this but this is simplified.
    So we add some VMs.
    Let's add 4 VMs all with 1 vCPU and all equal 100 relative weight (RW). For the sake of argument all the VMs are 'busy' so that they always need CPU. Let's say each of them shows fairly constant 80% CPU activity in Task Manager within the VM. None of the
    VMs are Terminal Servers. Let's also ignore the Hyper-V parent partition's draw on CPU as negligible.
    So in this case, if there is contention for the parent CPU, then each of the 4 VMs would be allocated an equal time share of the parent's pool of CPU. So it might be said that on average each VM runs as if it had 4Ghz of 'grunt'. Inside each VM the applications
    would see a single vCPU running at 4Ghz. (Bear with me on Ghz, I could have called Ghz 'gruntz' or indeed anything, but I think it helps to talk in terms of Ghz as this is familiar).
    Is this correct? Assuming it is then ...
    So now I need more 'grunt' to be available to the first VM. So some people may consider two options. Increase the number of vCPU assigned to the VM or increase the Relative Weight. This is where I am confused.
    So my question is if the RW is kept constant does increasing the number of vCPU make any more grunt available to a VM or is the grunt simply divided up. For example:
    I change VM1 so have 4 vCPU. My understanding is that because RW has not changed then the applications running on VM1 see things change from 1 vCPU running at 4Ghz to 4 vCPUs running at 1Ghz. I surmise this because the RW is what dictates the amount of time
    a VM gets on the parent pool of CPU so the VM's allocation (of 4Ghz) must be divided by the number of vCPU.
    However I am continually faced with clients asking to allocate more vCPU because they feel this improves the performance of the applications running on the VM, hence I wanted some clarification on whether my understanding is correct or not.
    I know that Brian Ehlert, and others, have often stated that it is best to try and give VMs as few vCPUs as possible so that the VM's OS doesn't need to spend time shuffling threads. If this is the case then what is the background or reason for increasing
    the allocation of vCPU to a VM? Why add more? When does it have benefit? Is it also required to increase the RW at the same time as adding the vCPU?
    It would be great if there was an in-depth article from Microsoft explaining how this all works, in the meantime I'm hoping for some enlightenment from this forum.
    Thanks in advance.
    Ian

    Thanks for your input Ben, that is a very interesting document indeed.
    The section that is most pertinent is this one:
    <<18.2.3       CPU
    Weight
    The CPU weight is a relative weight assigned to each of the virtual processors of the partition. Unless otherwise constrained by reserves and caps, the scheduler will attempt to weight the run time of the virtual processors scheduled on
    a given logical processor according to their relative weights. Let’s consider the case where three partitions, each with one virtual processor are being scheduled on a single logical processor, their weights are 100, 200 and 700, no reserves or caps are in
    effect, and all three of the virtual processors have work to perform (that is, they are not idle). In this case, the fraction of physical CPU capacity provided to the three virtual processors would be approximately
    10%, 20%, and 70%.
    The CPU weight value is expressed as a decimal value from 1 to 10,000 where 100 (the geometric mean) is the typical value.
    By default, a partition’s weight is set to 100.>>
    After having read this (and your statement about scheduling processors not VMs) I have had a 'lightbulb moment' where I first understand that the various 'switches' such as Relative Weight are per vCPU and not per VM.
    I went back to the online help from Hyper-V and it points to this document:
    Performance Tuning Guidelines for Windows Server 2008
    http://msdn.microsoft.com/en-us/windows/hardware/gg463394.aspx
    In this document there are some useful statements that I was not aware of i.e.
    <<Hyper-V in Windows Server 2008 supports up to 16 logical processors and can use all logical processors if the number of active virtual processors matches that of logical processors. This can reduce
    the rate of context switching between virtual processors and can yield better performance overall.">>
    This is not something that I was aware of. I thought that if you had fewer vCPU than logical CPUs on the host then the vCPU would be shared around the logical CPUs in order to fully utilise the parent CPUs. After reading this above it is obvious that this
    is not the case.
    And this statement:
    <<Virtual Processors
    Hyper‑V in Windows Server 2008 supports a maximum of four virtual processors per VM. VMs that have loads that are not CPU intensive should be configured to use one virtual processor. This is because of the additional overhead that is associated
    with multiple virtual processors, such as additional synchronization costs in the guest operating system. More CPU-intensive loads should be placed in 2P or 4P VMs if the VM requires more than one CPU of processing under peak load.>>
    These two statements lead me to the feeling that it is better to add more vCPU to VMs than fewer if you want to 'make the most of' the CPU you have available on the parent. So going back to my original example of a parent with two quad core CPU (no hyper-threading)
    we have 8 logical CPUs available. If we have four VMs that running approximately equal, and busy workloads, we should set each VM to at least 2 vCPU. This would ensure all 8 logical CPUs were used.
    First question: What would the potential downside be to setting all four VMs with 4 vCPU which would overcommit the vCPU to logical CPU by a factor of 2. Would this cause scheduling overhead and therefore wasteful of CPU?
    Second Question: If I wanted to give a greater share of parent CPU to one of the VMs how would it be best done? Adding more vCPUs to the VM or changing the Relative Weight? Or both? Assuming I was using a Hyper-V 2012 parent that allows more than 4 vCPU
    per VM which would be the best way of boosting the performance of one of the VMs:
    a) VM1 gets 8 vCPU and each other VM (VM2, VM3 & VM4) each gets 4 vCPU
    or
    b) VM1 gets 200 Relative Weight and 4 vCPU and each other VM (VM2, VM3 & VM4) each gets 100 Relative Weight and 4 vCPU
    Many, many thanks for helping me here.
    Ian

  • ORACLE VM physical CPS vs VCPUs

    Hi.
    I'm little confused with Oracle VM and how many physical CPU and virtual VCPUs I have.
    I'm using  ldm list-devices -a to get the information.
    Someone could explain to me what the next output means?
    Thanks a lot.
    ldm list-devices -a
    CORE
        ID      %FREE   CPUSET
        0       0       (0, 1, 2, 3, 4, 5, 6, 7)
        1       0       (8, 9, 10, 11, 12, 13, 14, 15)
        2       100     (16, 17, 18, 19, 20, 21, 22, 23)
        3       100     (24, 25, 26, 27, 28, 29, 30, 31)
        4       100     (32, 33, 34, 35, 36, 37, 38, 39)
        5       100     (40, 41, 42, 43, 44, 45, 46, 47)
        6       100     (48, 49, 50, 51, 52, 53, 54, 55)
        7       100     (56, 57, 58, 59, 60, 61, 62, 63)
    VCPU
        PID     %FREE   PM
        0       0       no
        1       0       no
        2       0       no
        3       0       no
        4       0       no
        5       0       no
        6       0       no
        7       0       no
        8       0       no
        9       0       no
        10      0       no
        11      0       no
        12      0       no
        13      0       no
        14      0       no
        15      0       no
        16      100     ---
        17      100     ---
        18      100     ---
        19      100     ---
        20      100     ---
        21      100     ---
        22      100     ---
        23      100     ---
        24      100     ---
        25      100     ---
        26      100     ---
        27      100     ---
        28      100     ---
        29      100     ---
        30      100     ---
        31      100     ---
        32      100     ---
        33      100     ---
        34      100     ---
        35      100     ---
        36      100     ---
        37      100     ---
        38      100     ---
        39      100     ---
        40      100     ---
        41      100     ---
        42      100     ---
        43      100     ---
        44      100     ---
        45      100     ---
        46      100     ---
        47      100     ---
        48      100     ---
        49      100     ---
        50      100     ---
        51      100     ---
        52      100     ---
        53      100     ---
        54      100     ---
        55      100     ---
        56      100     ---
        57      100     ---
        58      100     ---
        59      100     ---
        60      100     ---
        61      100     ---
        62      100     ---
        63      100     ---

    Hello
    The system has 8 cores and each core one thread or vcpu
    CORE
        ID      %FREE   CPUSET
        0       0       (0, 1, 2, 3, 4, 5, 6, 7)
        1       0       (8, 9, 10, 11, 12, 13, 14, 15)
        2       100     (16, 17, 18, 19, 20, 21, 22, 23)
        3       100     (24, 25, 26, 27, 28, 29, 30, 31)
        4       100     (32, 33, 34, 35, 36, 37, 38, 39)
        5       100     (40, 41, 42, 43, 44, 45, 46, 47)
        6       100     (48, 49, 50, 51, 52, 53, 54, 55)
        7       100     (56, 57, 58, 59, 60, 61, 62, 63)
    If you are configuring a ldom system I think is useful this doc that talks about best practices
    www.oracle.com/technetwork/server-storage/vm/ovmsparc-best-practices-2334546.pdf
    Regards
    Eze

  • Hyperthreaded CPU Scheduling via Hyper-V

    I searched forums and documents (and books) all over for this answer pertaining to Hyper-V.
    When a guest VM is assigned 2 virtual CPUs with 100% reservation on a Hyper-V host with a processor featuring hyper-threading, does the guest VM receive guaranteed access to two
    physical cores or two logical cores?  For a thought experiment, on a single socket 2-core processor with hyper threading (4 logical cores), from my understanding Hyper-V takes physical core 0 by default leaving a single
    physical core for VMs.  What would be the result of configuring a VM with 2 virtual CPUs on this host with 100% reservation?  Would you be allowed to?  Would the vCPU scheduling be across two logical processors or would the VM fail to start
    because it requires two physical cores?

    Hi Nickmeister,
    "So,a virtual machine’s CPU count means the maximum number of threads that it is allowed to operate on physical cores at any given time. I can’t set that virtual machine to have more than two vCPUs because the host only has two CPUs. Therefore,
    there is nowhere for a third thread to be scheduled. But, if I had a 24-core system and left this VM at 2 vCPUs, then it would only ever send a maximum of two threads up to the hypervisor for scheduling. Other threads would be kept in the guest’s thread scheduler
    (the supervisor), waiting their turn. "
    Based on my understanding , we can image the procedure of physical cpu processing  can be divided to alot of
    time slices ,  more than one thread can be scheduled/switched to be processed by a processor/core .
    Hope the following article is helpful to you regarding to CPU reserve in hyper-v :
    http://blogs.msdn.com/b/virtual_pc_guy/archive/2011/02/17/hyper-v-cpu-scheduling-part-1.aspx
    Also :
    http://blogs.technet.com/b/redpill/archive/2011/02/19/hyper-v-cpu-scheduling.aspx
    Best Regards
    Elton Ji
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • CPU Work load optimization in SAP HANA

    Hi All,
    In virtual SAP HANA , there is an option to assign/optimize the vCPU to corresponds to Physical CPU as mentioned in the document below,
    .http://www.vmware.com/files/pdf/SAP_HANA_on_vmware_vSphere_best_practices_guide.pdf
    But,in Physical SAP HANA Systems, are the below mentioned features available,
    Can we assign dedicated CPU cores manually to a particular user/users ?
    Or, Is there a way to reserve  certain CPU cores for particular Application/Schema Threads/Sessions?
    Thanks for your help!!
    -Gayathri
    Message was edited by: Julie Blaufuss

    Nope, there is no such cpu-core based allocation option available.
    You can limit how many worker threads will be created, in case you need to balance the CPU usage on in a multi instance setup.
    However, you don't have any control on the actual amount of CPU resource that any SAP HANA instance, let alone DB user or query has.
    Comparing this with what you can do in vSphere is not suitable, as we are looking at a different level of abstraction here.
    To SAP HANA the machine that vSphere emulates will have x cores and SAP HANA will use these x cores - all of them.
    It's important not to forget that you have an additional layer of indirection here and things like CPU core binding can easily have negative side effects.
    For the SAP HANA users it would be more interesting to have a workload management within SAP HANA that would allow to manage different requirements on responsiveness and resource usage (it's not just CPU...). And that is what the SAP HANA development is working on.
    Maybe we're lucky and see some features in this direction later this year.

  • Dedicate more CPU space to Virtual Machine

    Hi,
    I have an VM with 8 virtual cores dedicated to it. The physical VM has 8 cores and it's a Xeon CPU E5-2650.
    However, when I am doing a stress test on the VM, the VM is getting really slow (normal of course) and it says CPU usage 100%.
    But, when I check the physical CPU usage (hyper-V server 2012 core - Task Manager) it says well, maximum 4% usage.. and all my other VM's are still performing very good.
    Is there a way to dedicate a much bigger part to a VM? I really need that option.
    Thanks in advance!

    I have responded to this quite a bit in this forum over the years.  (do some searches of the forum, you will find a lot of information).
    1) how are you stressing the CPU?  If your CPU test is single threaded it will not perform well in a VM, no matter the hypervisor.
    The CPU use in the VM is what the VM experiences, not the impact on the host.
    The nuts and bolts are discussed there:
    http://social.technet.microsoft.com/wiki/contents/articles/1234.hyper-v-concepts-vcpu-virtual-processor.aspx
    What your VM is doing and how your application behaves (uses the processor) is highly relevant to the discussion.  As well as how you evaluate it.
    Increasing weight allows your VM process thread to cut in line of other process threads, giving more CPU time, but having a negative impact on other VMs.  Reserve will have no impact until your hypervisor runs out of CPU processing power.  Affinity
    also does not impact CPU scheduling.
    Giving your Hyper-V Server a faster CPU will always give you a win.
    Brian Ehlert
    http://ITProctology.blogspot.com
    Learn. Apply. Repeat.
    Disclaimer: Attempting change is of your own free will.

  • How many vCPU Sockets Do We Really Need

    For example, Windows 2008 standard is limited to 4 physical CPUs, and it will not utilize any additional vCPUs...
    Says Frank Denneman in his Blog:  vCPU configuration. Performance impact between virtual sockets and virtual cores? - frankdenneman.nl
    How many Physical CPUs ( Virtual Sockets ) does RHEL 5,6.X utilizes.

    Note, Windows Server 2008 Standard is limited to 4 (four) physical cpu (or sockets) BUT it supports 32 logical processors (in 32bit version) or 64 logical processors (in 64bits version)... then when cofiguring a Windows Server 2008 Standard, if you need more than 4 (four) logical processors, rememmber to increase the "number of  core per sockets" in virtual machine configuration.
    About RHEL, take a look here for some limits: Red Hat Enterprise Linux technology capabilities and limits - Red Hat Customer Portal

  • Question about 1 CPU limitation

    what about dual core CPUs or CPUs with hyperthreading enabled? Is the 1 CPU limitation on a per socket basis like the other Oracle products, or is it limited to one physical CPU core? thanks.
    -js

    im wondering how this is acheived though? It is via cpu_count because I change it (up to a value of 3)
    SQL> show parameter cpu
    NAME TYPE VALUE
    cpu_count integer 1
    parallel_threads_per_cpu integer 2
    SQL> alter system set cpu_count = 10 scope = both;
    System altered.
    SQL> show parameter cpu
    NAME TYPE VALUE
    cpu_count integer 3
    parallel_threads_per_cpu integer 2

  • Number of CPU - Solaris SunOS 5.9

    Hi,
    can someone tell me how can I figure out the number of CPUs in SunOS 5.9.
    I executed
    psrinfo -p and the result was 8.
    Then I ran
    psrinfo |wc -lthe result was 12.
    I'm not an expert in Unix, can one tell me what is the right command ?
    Thanks.

    user12100384 wrote:
    Hi, thanks for the reply,
    In order to use parallel degree in move and rebuild segments reorganization , should I consider physical number of CPUs or the core too ? I guess I shuld use just Physical CPU, is it correct ?
    If both source & destination reside on same physical disk volume, little will be gained by throwing CPU cycles at the problem.
    Disk I/O saturates faster than CPU or RAM does

Maybe you are looking for