To verify the real machine capacity (actual hardware resources vs. advertised specifications), follow these structured steps:
- Source: Check vendor documentation, cloud provider instance details, or purchase orders.
- Key Metrics:
- CPU: Cores, threads, clock speed (GHz), hyper-threading.
- Memory (RAM): Total capacity (GB).
- Storage: Disk size (GB/TB), type (SSD/HDD), IOPS (for cloud).
- Network: Bandwidth (Gbps), interface speed.
Verify Physical Hardware (On-Premises Machines)
Use OS tools to confirm actual hardware:
Linux:
- CPU:
lscpu # Core count, threads, architecture cat /proc/cpuinfo # Detailed CPU info
- Memory:
free -h # Total RAM and usage dmidecode --type memory # Detailed RAM specs
- Storage:
lsblk # Disk partitions and sizes fdisk -l # Disk geometry smartctl -a /dev/sda # Disk health (requires `smartmontools`)
- Network:
ip a # Network interfaces and speeds ethtool eth0 # Interface speed/duplex
Windows:
- CPU:
systeminfo | findstr /C:"Processor" taskmgr → Performance tab → CPU
- Memory:
systeminfo | findstr /C:"Total Physical Memory" taskmgr → Performance tab → Memory
- Storage:
wmic diskdrive get size, model, interfaceType
- Network:
ipconfig /all # Interface details Get-NetAdapter -Name "Ethernet" | Select-Object LinkSpeed
Test Actual Performance (Benchmarking)
Use benchmarks to validate if hardware delivers expected performance:
- CPU:
sysbench cpu --cpu-max-prime=20000 run # Linux Geekbench (cross-platform) # Download from geekbench.com
- Memory:
sysbench memory run --memory-block-size=1K --memory-total-size=10G # Linux
- Disk I/O:
dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct # Sequential write fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=1 --size=1G # Random read
- Network:
iperf3 -c server_ip -t 60 # Client test (requires server)
Check Virtualization Overhead (VMs/Containers)
- Hypervisor Layer:
- VMware:
esxcli hardware cpu list(ESXi),vmware-cmd(vCenter). - KVM:
virsh dominfo VM_NAME(CPU/memory limits). - Hyper-V:
Get-VMProcessor -VMName "VM"(CPU limits).
- VMware:
- Guest OS: Use tools from Section 2 to detect allocated resources (not physical capacity).
- Cloud-Specific Checks:
- AWS:
curl http://169.254.169.254/latest/meta-data/instance-type(instance type). - Azure:
az vm show -n VM_NAME -g RG_NAME --query hardwareProfile(CPU/RAM).
- AWS:
Detect Resource Contention
- Monitor Real-Time Usage:
- Linux:
htop,vmstat,iostat,nethogs. - Windows: Performance Monitor (
perfmon), Resource Monitor.
- Linux:
- Cloud Tools:
AWS CloudWatch, Azure Monitor, Google Cloud Monitoring.
- Key Metrics:
- CPU/Memory utilization >80% indicates bottleneck.
- Disk latency >10ms (SSD) or >50ms (HDD).
- Network packet loss/jitter.
Validate Against Cloud Promises
- Cloud Providers:
- AWS: Use
ec2:InstanceTypesAPI or CloudWatch metrics. - Azure: Check
Microsoft.Compute/virtualMachinesAPI or Azure Monitor.
- AWS: Use
- Burstable Instances (e.g., AWS T2/T3):
- Monitor CPU credits:
aws cloudwatch get-metric-statistics --metric-name CPUUtilization --namespace AWS/EC2.
- Monitor CPU credits:
- Storage IOPS:
- Cloud: Use
fioor provider-specific tools (e.g., AWSio1volumes).
- Cloud: Use
Common Pitfalls
- Hyper-Threading: OS reports 2x cores (logical vs. physical). Use
lscpu --topology(Linux) or Task Manager (Windows). - Disk Cache: Benchmark tests may include cache effects. Use
direct=1indd/fioto bypass cache. - Network Throttling: Cloud providers cap bandwidth. Check instance type limits.
- Hardware Degradation: Use
smartctl(Linux) or Windows Disk Health to check for failing drives.
Summary Workflow
- Advertised Specs → Vendor docs/cloud console.
- Physical Check → OS tools (
lscpu,free,lsblk). - Benchmarking →
sysbench,iperf3,fio. - Virtualization → Hypervisor APIs/cloud metadata.
- Contention Check → Real-time monitoring (
htop, CloudWatch). - Cloud Validation → Provider-specific APIs/tools.
By following these steps, you can accurately determine whether a machine’s real capacity matches its advertised specifications.
Request an On-site Audit / Inquiry