Claude-Code-Slash-Commands-Linux-Desktop
/
commands
/hardware
/hardware-profilers
/by-component
/profile-ram.md
You are performing an exhaustive RAM (memory) profile of the system.
Your Task
Generate a comprehensive memory analysis covering all aspects of RAM configuration, performance, and utilization.
1. Memory Module Inventory
- Number of modules: Total DIMMs installed
- Slots used/available: Occupied vs. total slots
- Module locations: Which slots contain modules
- Form factor: DIMM, SO-DIMM, etc.
- Module manufacturers: Per-module vendor
- Part numbers: Specific module part numbers
- Serial numbers: Per-module serial numbers
2. Memory Specifications
- Total capacity: System total in GB
- Per-module capacity: Size of each DIMM
- Memory type: DDR3, DDR4, DDR5, LPDDR, etc.
- Speed ratings: Configured speed and maximum speed
- Clock frequency: MT/s or MHz
- Voltage: Operating voltage (1.2V, 1.35V, 1.5V, etc.)
- Data width: 64-bit, 72-bit (ECC)
- Total width: Physical bus width
3. Memory Timings and Performance
- CAS latency: Primary timing (CL)
- RAS to CAS delay: tRCD
- Row precharge time: tRP
- Row active time: tRAS
- Command rate: 1T or 2T
- XMP/DOCP profiles: Available overclocking profiles
- Current vs. rated speed: Compare actual to maximum
- Memory bandwidth: Theoretical and actual
4. Memory Technology Features
- ECC support: Error-correcting code capability
- Channel configuration: Single, dual, triple, quad channel
- Rank configuration: Single rank, dual rank per module
- Memory controller: Integrated vs. discrete
- NUMA configuration: Non-uniform memory access (multi-CPU systems)
- Interleaving: Memory interleaving status
5. Current Memory Usage
- Total memory: Available to system
- Used memory: Currently allocated
- Free memory: Completely unused
- Available memory: Free + reclaimable
- Buffers: Kernel buffer cache
- Cached: Page cache
- Active/Inactive: Hot and cold memory
- Dirty memory: Modified pages not yet written
- Writeback: Currently being written back
6. Swap Configuration
- Swap total: Total swap space
- Swap used: Currently used swap
- Swap type: Partition, file, or zram
- Swappiness: Kernel swap tendency (0-100)
- Swap devices: List of swap locations
- Swap priority: If multiple swap devices
7. Memory Pressure and Performance
- Page faults: Major and minor fault rates
- Swap in/out rates: If swap is active
- Memory pressure: OOM events, thrashing indicators
- Huge pages: Transparent huge pages configuration
- NUMA statistics: Memory locality (if applicable)
- Memory errors: ECC errors if supported
8. Virtual Memory Configuration
- Virtual memory parameters: vm.swappiness, vm.vfs_cache_pressure
- Overcommit settings: Memory overcommit mode
- OOM killer settings: Out-of-memory behavior
- Huge page configuration: Transparent huge pages, huge page pool
Commands to Use
DMI/Hardware information:
sudo dmidecode -t memorysudo dmidecode -t 16- Physical memory arraysudo dmidecode -t 17- Memory device details
Memory status:
free -hcat /proc/meminfovmstat -svmstat 1 5- Memory statistics over time
Module details:
sudo lshw -class memorysudo decode-dimms- Detailed DIMM info (if i2c-tools installed)
Performance and timings:
sudo dmidecode -t memory | grep -i speedsudo dmidecode -t memory | grep -i timingcat /sys/devices/system/edac/mc/mc*/dimm*/dimm_label- DIMM labels
Memory bandwidth:
sudo dmidecode -t memory | grep -i bandwidth- Use
sysbench memoryfor benchmarking (if installed)
Swap information:
swapon --showcat /proc/swapssysctl vm.swappiness
Virtual memory tuning:
sysctl -a | grep vm.cat /proc/sys/vm/overcommit_memory
Memory errors (ECC systems):
sudo edac-util -v(if available)sudo ras-mc-ctl --errors
NUMA information:
numactl --hardware(if NUMA system)cat /proc/buddyinfo
Output Format
Executive Summary
Memory Configuration: [total] GB, [type] @ [speed] MT/s
Modules: [X] x [Y]GB ([channel] channel, [rank] rank)
Technology: [ECC/Non-ECC], [feature highlights]
Current Usage: [X]% ([used]/[total] GB)
Detailed Memory Profile
Module Inventory:
Slot 1 (DIMM_A1): [manufacturer] [part-number]
- Capacity: [GB]
- Type: [DDR4/DDR5]
- Speed: [MT/s]
- Voltage: [V]
- Serial: [S/N]
Slot 2 (DIMM_A2): ...
Memory Configuration:
- Total Capacity: [X] GB
- Memory Type: [DDR4/DDR5]
- Channel Mode: [Dual/Quad] Channel
- Configured Speed: [MT/s] ([MHz])
- Maximum Supported Speed: [MT/s]
- Voltage: [V]
- ECC: [Enabled/Disabled/Not Supported]
Memory Timings:
- CAS Latency: [CL]
- tRCD: [ns]
- tRP: [ns]
- tRAS: [ns]
- Command Rate: [1T/2T]
Current Usage Statistics:
Total: [X] GB
Used: [Y] GB ([Z]%)
Free: [A] GB
Available: [B] GB
Buffers: [C] MB
Cached: [D] GB
Active: [E] GB
Inactive: [F] GB
Swap Configuration:
- Swap Total: [X] GB ([partition/file/zram])
- Swap Used: [Y] GB ([Z]%)
- Swappiness: [value]
- Devices: [list]
Performance Metrics:
- Page Faults: [rate] per second
- Swap Activity: [in/out rates]
- Memory Bandwidth: [theoretical GB/s]
- Huge Pages: [configured/available]
Virtual Memory Tuning:
- vm.swappiness: [value]
- vm.vfs_cache_pressure: [value]
- vm.overcommit_memory: [value]
- Transparent Huge Pages: [enabled/disabled]
Memory Assessment
Configuration Analysis:
- Channel utilization: [optimal/suboptimal]
- Speed optimization: [running at spec/underclocked]
- Capacity per channel: [balanced/unbalanced]
- Upgrade path: [recommendations]
Performance Considerations:
- Memory pressure: [low/medium/high]
- Swap usage: [analysis]
- Bottleneck assessment: [findings]
AI-Readable JSON
{
"memory_modules": [
{
"slot": "",
"manufacturer": "",
"part_number": "",
"serial_number": "",
"capacity_gb": 0,
"type": "DDR4|DDR5",
"speed_mts": 0,
"voltage": 0.0,
"form_factor": "DIMM|SO-DIMM"
}
],
"configuration": {
"total_capacity_gb": 0,
"memory_type": "",
"channel_mode": "single|dual|quad",
"configured_speed_mts": 0,
"max_speed_mts": 0,
"ecc_enabled": false,
"slots_used": 0,
"slots_total": 0
},
"timings": {
"cas_latency": 0,
"trcd": 0,
"trp": 0,
"tras": 0
},
"usage": {
"total_gb": 0.0,
"used_gb": 0.0,
"free_gb": 0.0,
"available_gb": 0.0,
"cached_gb": 0.0,
"usage_percent": 0.0
},
"swap": {
"total_gb": 0.0,
"used_gb": 0.0,
"type": "partition|file|zram",
"swappiness": 0
},
"features": {
"ecc_supported": false,
"numa": false,
"huge_pages_enabled": false
}
}
Execution Guidelines
- Use sudo liberally: Most detailed memory info requires root
- Parse dmidecode carefully: Extract all per-DIMM details
- Cross-reference data: Verify findings using multiple sources
- Calculate derived values: Bandwidth, channel utilization, etc.
- Check for errors: Look for memory error logs
- Assess configuration: Identify optimization opportunities
- Consider upgrade paths: Suggest meaningful improvements
- Monitor dynamic metrics: Capture usage over brief period
Important Notes
- Some details require specific tools (i2c-tools for SPD data)
- ECC information only available on systems with ECC support
- Memory timings may not be fully exposed on all systems
- Virtual machines may not expose full memory details
- NUMA information only relevant for multi-CPU systems
- Benchmark tools (sysbench, memtester) can provide additional insights
Be extremely thorough - capture every detail about the memory subsystem.