<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Frank Zhang</title>
    <description>The latest articles on DEV Community by Frank Zhang (@frankzhang).</description>
    <link>https://dev.to/frankzhang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4084184%2Fe6589665-f826-4e91-9387-0781324a8b18.png</url>
      <title>DEV Community: Frank Zhang</title>
      <link>https://dev.to/frankzhang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/frankzhang"/>
    <language>en</language>
    <item>
      <title>Interoperability in Multi-Vendor Switch Migration: VLAN Trunking, MSTP, and LACP</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Wed, 09 Sep 2026 06:33:59 +0000</pubDate>
      <link>https://dev.to/frankzhang/interoperability-in-multi-vendor-switch-migration-vlan-trunking-mstp-and-lacp-550m</link>
      <guid>https://dev.to/frankzhang/interoperability-in-multi-vendor-switch-migration-vlan-trunking-mstp-and-lacp-550m</guid>
      <description>&lt;p&gt;During phased switch migrations, old and new networks often operate in parallel. Reliable multi-vendor interoperability depends less on matching command syntax than on ensuring that both platforms interpret VLAN trunking, spanning tree and link aggregation parameters in the same way.&lt;/p&gt;

&lt;h2&gt;Scope of this article&lt;/h2&gt;
&lt;p&gt;This article explains the Layer 2 checks that matter when switches from different vendors must coexist during a migration. It focuses on VLAN and untagged-frame handling, MSTP region consistency, standards-based link aggregation, appropriate MTU troubleshooting and a staged validation workflow.&lt;/p&gt;

&lt;h2&gt;1. Multi-vendor interoperability depends on consistent behavior&lt;/h2&gt;

&lt;p&gt;In enterprise network upgrades, core switch replacements and campus modernization projects, it is common to connect switches from different vendors. An organization may replace its existing core switches with equipment from another vendor while keeping the current access layer in service. To maintain business continuity, the old and new environments often need to operate in parallel during a phased migration.&lt;/p&gt;

&lt;p&gt;At first glance, interoperability may seem straightforward: if both sides support VLAN trunking, spanning tree and link aggregation, the switches should communicate without difficulty. In practice, most interoperability issues are not caused by a lack of standards support. They more often result from differences in default settings, VLAN handling, spanning-tree parameters or link aggregation modes.&lt;/p&gt;

&lt;p&gt;Validation therefore requires more than checking whether an interface is Up or confirming that both sides are configured as trunk ports. What matters is whether the devices follow the same standards and interpret the relevant parameters consistently. Three areas deserve particular attention: VLAN trunking and PVID behavior, MSTP region configuration, and LACP-based link aggregation.&lt;/p&gt;

&lt;h2&gt;2. VLAN trunking is more than an allowed VLAN list&lt;/h2&gt;

&lt;p&gt;Most modern switches use IEEE 802.1Q for VLAN trunking, so basic VLAN tagging is generally interoperable across vendors. The more common source of problems is how each device handles PVIDs, native VLANs and untagged traffic.&lt;/p&gt;

&lt;p&gt;On an 802.1Q trunk, most VLAN traffic is transmitted with a VLAN tag. However, an untagged VLAN is often still present on the link. Depending on the vendor, this may be described as the PVID, native VLAN, default VLAN or untagged VLAN.&lt;/p&gt;

&lt;p&gt;Consider a simple example. One switch uses VLAN 10 as the PVID, while the switch at the other end of the trunk still uses VLAN 1 as its native VLAN. The physical link may remain fully operational, and tagged traffic for most VLANs may continue to pass normally. However, untagged frames received at each end will be classified into different VLANs.&lt;/p&gt;

&lt;p&gt;This mismatch can cause management access failures, DHCP problems, intermittent connectivity for certain devices or unexpected control-plane behavior. Because the trunk itself remains Up, these issues can be harder to diagnose than a complete link failure.&lt;/p&gt;

&lt;p&gt;During migration, the allowed VLAN list should therefore be only one part of the validation. PVID and native VLAN behavior must also be checked explicitly. Where possible, deliberately define and match the untagged VLAN on both ends of an inter-switch link instead of relying on vendor defaults.&lt;/p&gt;

&lt;h2&gt;3. MSTP compatibility requires a consistent region configuration&lt;/h2&gt;

&lt;p&gt;Spanning Tree Protocol is critical during a multi-vendor migration, especially when redundant links exist between core, distribution and access layers. An incorrect spanning-tree configuration may cause unexpected link blocking or, in more serious cases, create a Layer 2 loop.&lt;/p&gt;

&lt;p&gt;Standards-based protocols such as RSTP or MSTP are generally preferable to vendor-specific spanning-tree implementations. MSTP is especially useful in larger networks where different groups of VLANs need to follow different forwarding paths.&lt;/p&gt;

&lt;p&gt;Simply enabling MSTP on both switches, however, does not guarantee that they operate within the same MST region. An MST region is identified by several configuration elements, most notably the &lt;strong&gt;Region Name&lt;/strong&gt;, &lt;strong&gt;Revision Level&lt;/strong&gt; and mapping of VLANs to MST instances. These values must match for switches to consider themselves part of the same region.&lt;/p&gt;

&lt;p&gt;If the parameters differ, the devices may still run spanning tree and maintain connectivity, but the link between them will be treated as a region boundary. The intended per-instance forwarding design may then stop working as expected, and links may be blocked differently from the original topology design.&lt;/p&gt;

&lt;p&gt;Before migration, document the existing MSTP configuration carefully. After introducing the new switch, do more than confirm that MSTP is enabled: verify the Region Name, Revision Level and VLAN-to-instance mappings. Where supported, compare the resulting MST configuration digest as an additional consistency check. This is particularly important in campus networks with many VLANs and multiple redundant uplinks.&lt;/p&gt;

&lt;h2&gt;4. Standard LACP is the preferred choice for link aggregation&lt;/h2&gt;

&lt;p&gt;Connections between core and distribution switches often use multiple physical links combined into one logical aggregation interface for additional bandwidth and redundancy.&lt;/p&gt;

&lt;p&gt;Although nearly all enterprise switches support link aggregation, their operating modes are not always identical. Some platforms support static aggregation, while others also offer vendor-specific negotiation. If the two ends use different modes, every physical interface may appear Up even though the logical aggregation does not form correctly.&lt;/p&gt;

&lt;p&gt;For multi-vendor links, standards-based &lt;strong&gt;LACP&lt;/strong&gt; is generally the safest choice. LACP was originally specified in IEEE 802.3ad and is now defined under IEEE 802.1AX. As an open standard, it offers broad interoperability across enterprise switching platforms.&lt;/p&gt;

&lt;p&gt;Configure both ends to use LACP rather than pairing LACP on one side with a static aggregation group on the other. Also verify the number of member links, interface speeds and aggregation status.&lt;/p&gt;

&lt;p&gt;VLAN trunk configuration is normally applied to the logical aggregation interface rather than independently to each member port. Depending on the vendor, this interface may be called a Port-Channel, Bridge-Aggregation interface, Eth-Trunk or another equivalent name. Checking only physical member ports can therefore miss the configuration that actually controls production traffic.&lt;/p&gt;

&lt;h2&gt;5. MTU is not a general interoperability fix&lt;/h2&gt;

&lt;p&gt;A common troubleshooting mistake is to change the MTU when a multi-vendor trunk behaves unexpectedly.&lt;/p&gt;

&lt;p&gt;Ethernet defines a minimum frame size of 64 bytes, but this does not mean that the interface MTU should be configured to 64 bytes. These are different concepts. The 64-byte value describes the minimum size of a conventional Ethernet frame. In typical IP networking, MTU describes the maximum Layer 3 packet size that can be carried without fragmentation. Standard Ethernet commonly uses an IP MTU of 1500 bytes.&lt;/p&gt;

&lt;p&gt;Artificially reducing MTU will not correct a VLAN, spanning-tree or link-aggregation mismatch. Instead, it may cause unnecessary IP fragmentation or lead to packet drops and application-level connectivity problems.&lt;/p&gt;

&lt;p&gt;When a trunk has unreachable VLANs, unstable connectivity or an aggregation that does not form correctly, investigate VLAN handling, PVID/native VLAN configuration, spanning tree and LACP first.&lt;/p&gt;

&lt;p&gt;MTU validation is a separate concern when the network uses jumbo frames, storage traffic, virtualization platforms or tunneling technologies with additional encapsulation overhead.&lt;/p&gt;

&lt;h2&gt;6. A practical staged migration validation approach&lt;/h2&gt;

&lt;p&gt;Consider a migration in which an existing core switch is replaced by a new switch from another vendor. Instead of moving all production traffic at once, establish a temporary interconnection between the old and new environments and validate each protocol layer individually.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Verify physical link status, speed and duplex operation.&lt;/li&gt;
&lt;li&gt;Confirm that both sides use IEEE 802.1Q and permit all required VLANs across the trunk.&lt;/li&gt;
&lt;li&gt;Check PVID and native VLAN behavior so that both ends classify untagged frames into the same VLAN.&lt;/li&gt;
&lt;li&gt;Review spanning-tree behavior. For MSTP, confirm matching Region Name, Revision Level and VLAN-to-instance mappings, then verify that interconnection ports assume the expected roles.&lt;/li&gt;
&lt;li&gt;If multiple physical links are used, confirm that both switches negotiate the bundle with LACP and that every intended member has joined the aggregation group.&lt;/li&gt;
&lt;li&gt;Only after Layer 2 behavior is validated, test production services including management VLANs, server VLANs, user networks, DHCP, default gateways and critical applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This staged approach makes troubleshooting more manageable. Each completed check eliminates an entire class of potential faults and reduces the risk of moving many services at the same time.&lt;/p&gt;

&lt;h2&gt;7. Conclusion&lt;/h2&gt;

&lt;p&gt;There is no inherent reason switches from different vendors cannot interoperate reliably. When both devices follow open standards and are configured consistently, multi-vendor switching environments can operate without difficulty.&lt;/p&gt;

&lt;p&gt;Identical feature names do not necessarily mean identical behavior. For VLAN trunking, understand and align PVID and native VLAN handling. For MSTP, match region parameters and VLAN mappings. For link aggregation, standards-based LACP is generally the preferred choice.&lt;/p&gt;

&lt;p&gt;A successful migration depends less on whether configuration commands look similar across vendors and more on whether the resulting protocol behavior is equivalent.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;In practical network engineering, open standards, consistent parameters and staged validation are usually more valuable than memorizing the configuration syntax of any single vendor.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;

</description>
      <category>networking</category>
    </item>
    <item>
      <title>Industrial Wi-Fi Roaming Optimization in a Metal-Heavy Manufacturing Environment - OpsHome Docs</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Mon, 07 Sep 2026 11:05:46 +0000</pubDate>
      <link>https://dev.to/frankzhang/industrial-wi-fi-roaming-optimization-in-a-metal-heavy-manufacturing-environment-opshome-docs-2g84</link>
      <guid>https://dev.to/frankzhang/industrial-wi-fi-roaming-optimization-in-a-metal-heavy-manufacturing-environment-opshome-docs-2g84</guid>
      <description>&lt;p&gt;NETWORKING / INDUSTRIAL WI-FI / ROAMING&lt;/p&gt;
&lt;h1&gt;Industrial Wi-Fi Roaming Optimization in a Metal-Heavy Manufacturing Environment&lt;/h1&gt;
&lt;span&gt;WI-FI&lt;/span&gt;&lt;span&gt;ROAMING&lt;/span&gt;&lt;span&gt;802.11K/V/R&lt;/span&gt;&lt;span&gt;RF DESIGN&lt;/span&gt;&lt;span&gt;INDUSTRIAL&lt;/span&gt;
&lt;p&gt;In a factory filled with metal machines, storage racks, production lines and moving equipment, strong Wi-Fi coverage alone does not guarantee stable mobility. This case study shows how RF optimization and 802.11k/v/r roaming features improved connectivity for handheld terminals, barcode scanners and AGVs.&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Topics: industrial Wi-Fi, roaming, RF design, 802.11k, 802.11v, 802.11r&lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;Scope of this article&lt;/h2&gt;
&lt;p&gt;This article describes a practical industrial Wi-Fi roaming case: the symptoms observed in production, the sticky-client diagnosis, the RF and roaming changes applied, and the validation performed afterward. It focuses on design principles; exact thresholds and feature compatibility should still be validated against the client devices, access points and applications used at each site.&lt;/p&gt;

&lt;h2&gt;1. Background: mobility problems on the factory floor&lt;/h2&gt;

&lt;p&gt;In a modern manufacturing factory, wireless networks are widely used for handheld terminals, production data collection, warehouse operations and automated guided vehicle (AGV) transportation systems.&lt;/p&gt;

&lt;p&gt;A factory environment is very different from an office environment. Large metal machines, storage racks, production lines and moving equipment can significantly affect wireless performance.&lt;/p&gt;

&lt;p&gt;At this manufacturing site, operators reported frequent wireless interruptions during mobile operations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handheld terminals disconnected when moving between production areas.&lt;/li&gt;
&lt;li&gt;Barcode-scanning applications became slow.&lt;/li&gt;
&lt;li&gt;AGV communications occasionally experienced latency.&lt;/li&gt;
&lt;li&gt;Devices remained connected to distant access points even when closer APs were available.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The initial assumption was insufficient Wi-Fi coverage. After investigation, however, the issue proved to be mainly related to &lt;strong&gt;wireless roaming behavior and RF design&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;2. Problem analysis: overlapping coverage and sticky clients&lt;/h2&gt;

&lt;p&gt;During the site survey, engineers found that multiple access points provided overlapping coverage. A typical roaming scenario looked like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AP-01                         AP-02
Strong signal                 Strong signal

          Client movement →

Client remains connected to AP-01
even when AP-02 becomes a better choice&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The mobile device did not immediately switch to the nearer AP. Instead, it continued using the existing connection until the signal became too weak.&lt;/p&gt;

&lt;p&gt;This behavior caused several operational symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increased packet retransmissions.&lt;/li&gt;
&lt;li&gt;Higher latency.&lt;/li&gt;
&lt;li&gt;Unstable application sessions.&lt;/li&gt;
&lt;li&gt;Temporary communication interruptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem was identified as a &lt;strong&gt;sticky-client issue&lt;/strong&gt;: the client held on to its current association even after another AP had become the better candidate.&lt;/p&gt;

&lt;h2&gt;3. Solution design: optimize RF coverage first&lt;/h2&gt;

&lt;p&gt;The wireless network was optimized in stages. The first step was to improve the RF coverage design rather than simply increase AP transmit power.&lt;/p&gt;

&lt;p&gt;Engineers adjusted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AP placement.&lt;/li&gt;
&lt;li&gt;Coverage overlap.&lt;/li&gt;
&lt;li&gt;Channel assignment.&lt;/li&gt;
&lt;li&gt;Transmit power levels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The objective was to create controlled roaming areas where mobile devices could discover the next AP before losing connectivity to the current one.&lt;/p&gt;

&lt;p&gt;For these industrial mobile scenarios, the design targeted stable coverage around:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RSSI: -65 dBm to -75 dBm&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This range provided a practical roaming foundation for the devices tested at the site. It should be treated as a site-specific design target rather than a universal threshold.&lt;/p&gt;

&lt;h2&gt;4. 802.11k: accelerate neighbor discovery&lt;/h2&gt;

&lt;p&gt;After RF optimization, enterprise roaming features were enabled. The first was 802.11k, which allows wireless clients to receive information about nearby APs.&lt;/p&gt;

&lt;p&gt;Without neighbor information, the client may need to scan multiple channels before it can identify an available AP:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Client scans multiple channels
          →
Finds available APs
          →
Makes roaming decision&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With 802.11k, the current AP can provide neighbor information, allowing the client to select candidate APs more quickly:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AP provides neighbor information
          →
Client quickly selects candidate AP&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This reduces scanning time while a device is moving through the production environment.&lt;/p&gt;

&lt;h2&gt;5. 802.11v: guide clients toward a better AP&lt;/h2&gt;

&lt;p&gt;802.11v allows the wireless infrastructure to recommend a better AP to a compatible client. This can improve both connection quality and load distribution.&lt;/p&gt;

&lt;p&gt;For example, the network might compare the current connection with a candidate AP:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Current AP
RSSI: -78 dBm
High client load

Candidate AP
RSSI: -60 dBm
Lower load&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The network can guide the client toward the stronger, less-loaded AP. The final roaming decision still depends on client behavior and implementation.&lt;/p&gt;

&lt;h2&gt;6. 802.11r: reduce transition time&lt;/h2&gt;

&lt;p&gt;For applications that require low latency, roaming delay must be minimized. 802.11r Fast Transition reduces authentication time during AP switching by preparing security information in advance.&lt;/p&gt;

&lt;p&gt;This is especially useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AGV communications.&lt;/li&gt;
&lt;li&gt;Industrial handheld devices.&lt;/li&gt;
&lt;li&gt;Real-time monitoring systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because client and security compatibility can vary, 802.11r should be tested with the actual production device fleet before broad deployment.&lt;/p&gt;

&lt;h2&gt;7. Validation in real production routes&lt;/h2&gt;

&lt;p&gt;After completing the optimization, engineers tested the changes under real production conditions. The validation process included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walking tests along production routes.&lt;/li&gt;
&lt;li&gt;Monitoring client roaming events.&lt;/li&gt;
&lt;li&gt;Checking packet loss.&lt;/li&gt;
&lt;li&gt;Testing handheld terminals and industrial devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results showed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster AP transitions.&lt;/li&gt;
&lt;li&gt;Fewer connection interruptions.&lt;/li&gt;
&lt;li&gt;Improved mobile-terminal stability.&lt;/li&gt;
&lt;li&gt;A better user experience while devices were moving.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;8. Lessons learned&lt;/h2&gt;

&lt;p&gt;This case demonstrates that industrial Wi-Fi problems are not always caused by insufficient coverage. Simply increasing AP power may create additional roaming problems by making clients hold on to distant APs for longer.&lt;/p&gt;

&lt;p&gt;A stable industrial wireless network requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proper RF planning.&lt;/li&gt;
&lt;li&gt;Controlled AP overlap.&lt;/li&gt;
&lt;li&gt;Correct channel configuration.&lt;/li&gt;
&lt;li&gt;Roaming optimization technologies.&lt;/li&gt;
&lt;li&gt;Real-world validation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In industrial environments, the goal is not merely to provide the strongest Wi-Fi signal.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;The goal is to provide stable and predictable connectivity while devices are moving.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Why VMware iSCSI Does Not Get Faster with LACP: NFS, MPIO and 10GbE Explained</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Wed, 02 Sep 2026 13:17:49 +0000</pubDate>
      <link>https://dev.to/frankzhang/why-vmware-iscsi-does-not-get-faster-with-lacp-nfs-mpio-and-10gbe-explained-k6m</link>
      <guid>https://dev.to/frankzhang/why-vmware-iscsi-does-not-get-faster-with-lacp-nfs-mpio-and-10gbe-explained-k6m</guid>
      <description>&lt;p&gt;VMware storage performance depends on the complete I/O path, not only the disks. A fast NAS, NVMe cache, or a large LACP bundle cannot compensate for a storage path that still constrains each iSCSI flow to one physical link.&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Topics: VMware vSphere, ESXi, iSCSI, NFS, LACP, MPIO, 10GbE, storage architecture&lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;Key distinction&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LACP increases aggregate network capacity across multiple flows. MPIO creates and manages multiple storage paths.&lt;/strong&gt; They solve different problems, and an LACP bundle does not replace VMware iSCSI multipathing.&lt;/p&gt;

&lt;h2&gt;1. Storage performance is an end-to-end system&lt;/h2&gt;

&lt;p&gt;In a VMware vSphere environment, storage performance is not determined only by the media inside the host or NAS. The final result depends on every layer between the virtual machine and the storage backend.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Virtual Machine
      ↓
Storage Protocol
      ↓
Network
      ↓
Storage Path Design
      ↓
NAS/SAN Controller
      ↓
Cache
      ↓
RAID / Storage Media&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This article compares three common VMware storage models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local VMFS storage&lt;/li&gt;
&lt;li&gt;NFS datastore&lt;/li&gt;
&lt;li&gt;iSCSI datastore&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also explains how 8×1GbE LACP, 10GbE, iSCSI MPIO, and NVMe SSD cache affect different parts of that path.&lt;/p&gt;

&lt;h2&gt;2. VMware storage types compared&lt;/h2&gt;

&lt;h3&gt;Local VMFS storage&lt;/h3&gt;

&lt;p&gt;Local storage uses disks installed directly in the ESXi host.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;VM
 ↓
VMDK
 ↓
VMFS
 ↓
Local SSD / NVMe / RAID&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lowest latency&lt;/li&gt;
&lt;li&gt;Highest single-host performance&lt;/li&gt;
&lt;li&gt;Simple configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Storage is bound to one ESXi host&lt;/li&gt;
&lt;li&gt;Shared-storage capability is limited&lt;/li&gt;
&lt;li&gt;It is not ideal for multi-host HA clusters&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;NFS datastore&lt;/h3&gt;

&lt;p&gt;NFS provides file-based storage from a NAS.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ESXi
 ↓
NFS Client
 ↓
Network
 ↓
NAS File System&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple deployment&lt;/li&gt;
&lt;li&gt;Easy capacity expansion&lt;/li&gt;
&lt;li&gt;Shared access between ESXi hosts&lt;/li&gt;
&lt;li&gt;Good compatibility with NAS platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NFS is often preferred for homelabs, small VMware clusters, and straightforward shared-storage requirements.&lt;/p&gt;

&lt;h3&gt;iSCSI datastore&lt;/h3&gt;

&lt;p&gt;iSCSI provides block storage to ESXi.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ESXi
 ↓
iSCSI Initiator
 ↓
LUN
 ↓
VMFS
 ↓
Virtual Machines&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Block-level storage&lt;/li&gt;
&lt;li&gt;VMFS support&lt;/li&gt;
&lt;li&gt;Mature multipathing capability&lt;/li&gt;
&lt;li&gt;Enterprise SAN-style architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More complex configuration&lt;/li&gt;
&lt;li&gt;Requires a correct path design&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Local VMFS&lt;/th&gt;
&lt;th&gt;NFS&lt;/th&gt;
&lt;th&gt;iSCSI&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage type&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;td&gt;File&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared storage&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VMFS&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configuration&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;Complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HA / vMotion suitability&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPIO&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Not traditional block MPIO&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise SAN model&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;3. Why 8×1GbE LACP is not one 8Gbps link&lt;/h2&gt;

&lt;p&gt;A common assumption is that combining eight 1GbE interfaces creates a single 8Gbps connection. LACP does not work that way. It distributes network flows across the physical members of a bundle.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Flow A → NIC1 → 1Gbps
Flow B → NIC2 → 1Gbps
Flow C → NIC3 → 1Gbps&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Total aggregate bandwidth can increase when there are multiple suitable flows, but each member remains a 1GbE interface.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;8×1GbE LACP provides multiple 1GbE paths. It does not create one 8GbE interface for a single flow.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;h3&gt;The 10GbE advantage&lt;/h3&gt;

&lt;p&gt;A 10GbE interface provides up to 10Gbps on one physical path. This is materially different from distributing traffic across multiple 1GbE members.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;8×1GbE LACP&lt;/th&gt;
&lt;th&gt;10GbE&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aggregate bandwidth&lt;/td&gt;
&lt;td&gt;High across multiple flows&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-flow performance&lt;/td&gt;
&lt;td&gt;Limited by a member link&lt;/td&gt;
&lt;td&gt;Much stronger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cabling&lt;/td&gt;
&lt;td&gt;Complex&lt;/td&gt;
&lt;td&gt;Simpler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port usage&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Management&lt;/td&gt;
&lt;td&gt;More complex&lt;/td&gt;
&lt;td&gt;Easier&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For storage vMotion, VM cloning, backup, and large sequential I/O, 10GbE usually provides a better operational experience.&lt;/p&gt;

&lt;h2&gt;4. What NVMe SSD cache can and cannot improve&lt;/h2&gt;

&lt;p&gt;Modern NAS platforms often use NVMe SSD cache in front of HDD RAID.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;VMware
  ↓
NFS / iSCSI
  ↓
Network
  ↓
NAS Controller
  ↓
NVMe Cache
  ↓
HDD RAID&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NVMe cache can improve random IOPS, storage latency, small-block workloads, and concurrency across multiple virtual machines. It is particularly useful for VM operating system disks, databases, logs, and random read/write workloads.&lt;/p&gt;

&lt;p&gt;It cannot bypass a network bottleneck. If the NAS can process more than 1GB/s internally but VMware reaches it through 1GbE, actual throughput remains constrained to roughly the capacity of that network path.&lt;/p&gt;

&lt;h2&gt;5. LACP and MPIO operate at different layers&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Primary purpose&lt;/th&gt;
&lt;th&gt;What it handles&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LACP&lt;/td&gt;
&lt;td&gt;Network link aggregation&lt;/td&gt;
&lt;td&gt;Ethernet links, network flows, and link redundancy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPIO&lt;/td&gt;
&lt;td&gt;Storage path multipathing&lt;/td&gt;
&lt;td&gt;iSCSI paths, storage I/O distribution, failover, and load balancing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;LACP ≠ MPIO.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;A working LACP bundle can provide network redundancy and aggregate capacity while the VMware storage stack still sees only one usable iSCSI path.&lt;/p&gt;

&lt;h2&gt;6. Correct iSCSI MPIO design&lt;/h2&gt;

&lt;p&gt;An LACP connection between ESXi, the switch, and the NAS does not by itself create multiple VMware storage paths.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ESXi
  |
LACP
  |
Switch
  |
NAS
  |
iSCSI&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A multipath design presents independent paths to the storage stack:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vmnic1 → vmk1 → iSCSI Path 1
vmnic2 → vmk2 → iSCSI Path 2
vmnic3 → vmk3 → iSCSI Path 3

Multiple Paths
      ↓
VMware NMP
      ↓
Round Robin&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Each path becomes visible to VMware Native Multipathing, allowing the configured path-selection policy to distribute I/O and provide failover.&lt;/p&gt;

&lt;h2&gt;7. Case study: 8×1GbE LACP iSCSI remained near 1GbE&lt;/h2&gt;

&lt;h3&gt;Initial design&lt;/h3&gt;

&lt;p&gt;A VMware server and NAS both used multiple 1GbE interfaces in the following design:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ESXi
8×1GbE
  ↓
LACP
  ↓
Switch
  ↓
LACP
  ↓
NAS
  ↓
iSCSI&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The expected result was 8Gbps of aggregate storage bandwidth. Actual performance remained close to a single 1GbE link.&lt;/p&gt;

&lt;h3&gt;Root cause&lt;/h3&gt;

&lt;p&gt;The problem was not a bad cable, a failed LACP bundle, the NAS, or the disks. The issue was architectural: the iSCSI session was still subject to flow distribution over individual LACP members.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;iSCSI Flow
    ↓
LACP Hash
    ↓
One 1GbE Member
    ↓
≈100MB/s&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The environment had network aggregation, but it did not have storage multipathing.&lt;/p&gt;

&lt;h2&gt;8. Recommended architectures&lt;/h2&gt;

&lt;h3&gt;When existing hardware is limited to 1GbE&lt;/h3&gt;

&lt;p&gt;Separate normal workload traffic from storage traffic, and use independent interfaces for independent iSCSI paths.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Work network:
2×1GbE → LACP

Storage network:
NIC1 → iSCSI Path 1
NIC2 → iSCSI Path 2
NIC3 → iSCSI Path 3
NIC4 → iSCSI Path 4
           ↓
          MPIO&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;For a new deployment&lt;/h3&gt;

&lt;p&gt;Use independent 10GbE storage paths, ideally through separate switching paths where the availability design requires it.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;10GbE Path A → Switch A → Storage
10GbE Path B → Switch B → Storage

MPIO + independent storage paths&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;9. Final recommendations&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Recommended design&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single ESXi host&lt;/td&gt;
&lt;td&gt;Local SSD or NVMe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple VMware shared storage&lt;/td&gt;
&lt;td&gt;NFS + 10GbE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NAS with HDD and VM workloads&lt;/td&gt;
&lt;td&gt;NVMe cache + 10GbE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iSCSI with existing 1GbE&lt;/td&gt;
&lt;td&gt;Independent NICs + MPIO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise iSCSI&lt;/td&gt;
&lt;td&gt;10GbE + MPIO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New VMware cluster&lt;/td&gt;
&lt;td&gt;Dual 10GbE storage paths&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;LACP improves network aggregation. MPIO improves storage path utilization. They solve different problems.&lt;/p&gt;

&lt;p&gt;A faster NAS with NVMe cache cannot overcome a poor network design, and a large number of 1GbE ports does not automatically become one high-speed iSCSI path.&lt;/p&gt;

&lt;p&gt;Predictable VMware storage performance requires the storage protocol, network design, independent paths, multipathing policy, and storage backend to be designed as one system.&lt;/p&gt;

</description>
      <category>mpio</category>
      <category>iscsi</category>
      <category>vsphere</category>
      <category>networking</category>
    </item>
    <item>
      <title>5 GHz Wi-Fi Channel Planning in Metal-Heavy Industrial Environments</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Tue, 01 Sep 2026 10:56:16 +0000</pubDate>
      <link>https://dev.to/frankzhang/5-ghz-wi-fi-channel-planning-in-metal-heavy-industrial-environments-3ci</link>
      <guid>https://dev.to/frankzhang/5-ghz-wi-fi-channel-planning-in-metal-heavy-industrial-environments-3ci</guid>
      <description>&lt;h1&gt;
  
  
  5 GHz Wi-Fi Channel Planning and Interference Optimization in Metal-Intensive Industrial Environments
&lt;/h1&gt;

&lt;p&gt;In enterprise wireless design, two assumptions often lead to poor results: wider channels must provide better performance, and higher AP transmit power must provide better coverage.&lt;/p&gt;

&lt;p&gt;Those assumptions may be acceptable in some small home networks, but they do not translate well to factories, warehouses, production floors, and other complex RF environments. When a site contains large amounts of metal, dense AP deployments, and mobile clients, using 80 MHz or even 160 MHz channels indiscriminately can reduce overall WLAN stability rather than improve it.&lt;/p&gt;

&lt;p&gt;This article uses a typical Wi-Fi 6 deployment in a manufacturing plant to examine the relationship between 5 GHz channel width, co-channel contention, channel reuse, and transmit power, and to explain why narrower channels are often the better engineering choice in industrial environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Scenario: A Wi-Fi 6 Network on a Manufacturing Floor
&lt;/h2&gt;

&lt;p&gt;Consider a large mechanical manufacturing plant running an IEEE 802.11ax (Wi-Fi 6) wireless network. The WLAN primarily serves barcode scanners, PDAs, industrial tablets, and mobile inspection devices.&lt;/p&gt;

&lt;p&gt;The production floor contains metal-processing equipment, steel columns, production lines, machinery, and other reflective surfaces. As a result, RF propagation is affected by reflection, scattering, shadowing, and multipath.&lt;/p&gt;

&lt;p&gt;During the initial deployment, the 5 GHz radios were configured to use 80 MHz channel bonding in order to maximize available throughput.&lt;/p&gt;

&lt;p&gt;From a purely theoretical perspective, this configuration is understandable. Wider channels can provide higher PHY rates and greater peak throughput for an individual client under suitable conditions.&lt;/p&gt;

&lt;p&gt;After the WLAN went into production, however, several problems appeared:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some mobile clients experienced intermittent disconnections.&lt;/li&gt;
&lt;li&gt;PDA connectivity became unstable while moving through the facility.&lt;/li&gt;
&lt;li&gt;Wireless latency fluctuated noticeably.&lt;/li&gt;
&lt;li&gt;Actual throughput varied significantly over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A subsequent RF survey and interference analysis showed substantial overlap between neighboring APs operating on the same channel. In practical terms, the WLAN was suffering from excessive co-channel contention, commonly discussed under the broader term &lt;strong&gt;Co-Channel Interference (CCI)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At this point, the key question was no longer whether the Wi-Fi signal was strong enough. The more important question became:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was the existing channel plan appropriate for the AP density and RF characteristics of the site?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why 80 MHz Channels Can Increase Contention
&lt;/h2&gt;

&lt;p&gt;Wi-Fi channel width is fundamentally a trade-off between &lt;strong&gt;peak per-link throughput&lt;/strong&gt; and &lt;strong&gt;frequency reuse&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A 20 MHz channel consumes a relatively small portion of spectrum, making it possible to create more independent channel assignments. A 40 MHz channel combines two 20 MHz channels, while 80 MHz and 160 MHz channels &lt;/p&gt;

&lt;p&gt;As channel width increases, an individual AP may gain a higher theoretical maximum data rate. At the same time, however, fewer independent channel combinations remain available for neighboring APs.&lt;/p&gt;

&lt;p&gt;In a home network with only one or two access points, this trade-off may have little practical impact. In a factory, school, hospital, warehouse, or large office, dozens of APs may operate within the same RF environment.&lt;/p&gt;

&lt;p&gt;If many of those APs use 80 MHz channels, the number of practical channel reuse options decreases quickly. Nearby APs are therefore more likely to share the same channel or occupy overlapping spectrum.&lt;/p&gt;

&lt;p&gt;That increases contention and reduces the amount of airtime available to each AP and its associated clients.&lt;/p&gt;

&lt;p&gt;For enterprise WLAN design, channel planning should therefore focus on the efficiency of the &lt;strong&gt;entire RF system&lt;/strong&gt;, not just the theoretical capability of a single access point.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. How Co-Channel Contention Affects Wi-Fi Performance
&lt;/h2&gt;

&lt;p&gt;When nearby APs operate on the same channel and can hear one another, their clients effectively compete for access to the same RF medium.&lt;/p&gt;

&lt;p&gt;Unlike a switched full-duplex Ethernet network, IEEE 802.11 uses a shared-medium access mechanism. Devices must determine whether the channel is available before transmitting and may need to defer or back off when other transmissions are detected.&lt;/p&gt;

&lt;p&gt;As the number of APs and clients sharing the same channel increases, the network may experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More airtime contention&lt;/li&gt;
&lt;li&gt;Longer transmission wait times&lt;/li&gt;
&lt;li&gt;Increased backoff&lt;/li&gt;
&lt;li&gt;Higher retry rates&lt;/li&gt;
&lt;li&gt;Lower effective throughput&lt;/li&gt;
&lt;li&gt;Greater latency and jitter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why co-channel problems are often difficult to identify from a simple signal-strength indicator.&lt;/p&gt;

&lt;p&gt;The WLAN may not fail completely. Clients may remain associated, and the signal level may appear strong, while application performance becomes inconsistent.&lt;/p&gt;

&lt;p&gt;A device can therefore show a strong Wi-Fi signal and still deliver a poor user experience if the channel is heavily utilized or the RF environment contains excessive co-channel contention.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Why Metal-Intensive Industrial Environments Are More Difficult
&lt;/h2&gt;

&lt;p&gt;A factory floor is significantly different from a typical office.&lt;/p&gt;

&lt;p&gt;In an office, RF propagation is mainly influenced by walls, furniture, partitions, and people. In a manufacturing plant, large machinery, steel structures, production lines, racks, and other conductive surfaces can create substantial reflection and multipath propagation.&lt;/p&gt;

&lt;p&gt;A transmitted signal may reach a client through several paths rather than one direct path. Modern Wi-Fi technologies such as OFDM and MIMO are designed to operate in multipath environments and can sometimes make productive use of them.&lt;/p&gt;

&lt;p&gt;However, that does not mean that more reflections automatically improve wireless performance.&lt;/p&gt;

&lt;p&gt;When complex multipath propagation is combined with dense AP placement and poor channel reuse, the RF environment becomes much harder to predict and optimize. A client may hear several APs at usable signal levels, while multiple cells compete for airtime on the same channel.&lt;/p&gt;

&lt;p&gt;For that reason, the design objective in an industrial WLAN should rarely be the highest possible PHY rate. More practical priorities usually include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stable connectivity&lt;/li&gt;
&lt;li&gt;Low retry rates&lt;/li&gt;
&lt;li&gt;Predictable latency&lt;/li&gt;
&lt;li&gt;Reliable roaming&lt;/li&gt;
&lt;li&gt;Sufficient application throughput&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This distinction is particularly important for barcode scanners, PDAs, and mobile inspection terminals.&lt;/p&gt;

&lt;p&gt;These devices often do not require hundreds of megabits per second of sustained throughput. What they need is a reliable link, consistent latency, low packet loss, and smooth handoff between APs.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. A Better Optimization Strategy: Reduce Channel Width
&lt;/h2&gt;

&lt;p&gt;Once excessive co-channel contention has been confirmed, the more appropriate response is usually not to make the channel wider. Instead, channel width should be reduced where necessary.&lt;/p&gt;

&lt;p&gt;For example, APs configured for 80 MHz operation can be moved to 40 MHz. In particularly dense areas, 20 MHz channels may be more appropriate.&lt;/p&gt;

&lt;p&gt;This reduces the peak theoretical rate available to a single AP, but it creates more opportunities for independent channel assignments.&lt;/p&gt;

&lt;p&gt;With more channels available for reuse, neighboring APs can be separated more effectively in the frequency domain, while APs that must reuse the same channel can be placed farther apart in the physical topology.&lt;/p&gt;

&lt;p&gt;This is the principle of &lt;strong&gt;channel reuse&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Channel reuse does not mean that every AP across an entire plant must use a unique channel. In a sufficiently large WLAN, that would be unrealistic.&lt;/p&gt;

&lt;p&gt;The actual goal is to ensure that APs reusing the same channel are separated enough that their coverage areas and contention domains are kept under reasonable control.&lt;/p&gt;

&lt;p&gt;Reducing channel width is therefore not simply a decision to “accept lower speed.” It is a deliberate trade-off: part of the theoretical peak throughput of an individual AP is exchanged for better spectrum reuse and more predictable system-wide performance.&lt;/p&gt;

&lt;p&gt;In many enterprise WLANs, that is the better engineering decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Why 160 MHz Is Usually Not the Answer
&lt;/h2&gt;

&lt;p&gt;A common reaction to unstable 80 MHz performance is to assume that moving to 160 MHz will solve the problem by increasing available bandwidth.&lt;/p&gt;

&lt;p&gt;In a dense WLAN, the opposite may happen.&lt;/p&gt;

&lt;p&gt;A 160 MHz channel consumes a much larger portion of the available 5 GHz spectrum. This leaves fewer independent channel assignments and forces more aggressive channel reuse.&lt;/p&gt;

&lt;p&gt;As a result, neighboring APs are more likely to contend for the same airtime, especially in deployments with high AP density.&lt;/p&gt;

&lt;p&gt;For this reason, 160 MHz operation is generally more appropriate for environments where AP density is relatively low, the RF environment is clean, compatible spectrum is available, and very high per-client throughput is genuinely required.&lt;/p&gt;

&lt;p&gt;It should not be treated as a default setting for factories, warehouses, hospitals, schools, or dense enterprise offices.&lt;/p&gt;

&lt;p&gt;Channel width must be selected according to the actual RF design and application requirements, not simply by choosing the largest value supported by the hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Why Maximum AP Transmit Power Can Make Things Worse
&lt;/h2&gt;

&lt;p&gt;Another common troubleshooting response is to increase the transmit power of every AP.&lt;/p&gt;

&lt;p&gt;At first glance, this seems reasonable: if users are experiencing connectivity problems, stronger AP transmissions should improve coverage.&lt;/p&gt;

&lt;p&gt;In a multi-AP enterprise WLAN, however, excessive transmit power can enlarge cell sizes and increase overlap between neighboring APs.&lt;/p&gt;

&lt;p&gt;That may create several additional problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More co-channel contention&lt;/li&gt;
&lt;li&gt;Larger interference and contention domains&lt;/li&gt;
&lt;li&gt;Less predictable roaming boundaries&lt;/li&gt;
&lt;li&gt;Sticky-client behavior&lt;/li&gt;
&lt;li&gt;Uplink/downlink asymmetry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last point is particularly important.&lt;/p&gt;

&lt;p&gt;An enterprise AP may be capable of transmitting at considerably higher power than a PDA, phone, or handheld scanner. A client may therefore be able to hear the AP from a long distance while lacking enough transmit power to provide a similarly strong return path.&lt;/p&gt;

&lt;p&gt;The result can be misleading: the client displays a strong Wi-Fi signal, but the bidirectional link performs poorly.&lt;/p&gt;

&lt;p&gt;For this reason, enterprise WLAN design should focus on controlling &lt;strong&gt;cell size&lt;/strong&gt; rather than simply maximizing AP transmit power.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Wi-Fi 6 Does Not Eliminate the Need for RF Planning
&lt;/h2&gt;

&lt;p&gt;Wi-Fi 6 introduced several important mechanisms intended to improve efficiency in dense environments, including OFDMA, MU-MIMO, BSS Coloring, Spatial Reuse, and Target Wake Time.&lt;/p&gt;

&lt;p&gt;BSS Coloring, for example, helps devices distinguish transmissions from their own BSS from those belonging to neighboring BSSs, which can improve spatial reuse under suitable conditions.&lt;/p&gt;

&lt;p&gt;These capabilities are valuable, but they do not compensate for fundamentally poor RF design.&lt;/p&gt;

&lt;p&gt;If a deployment has excessive AP density, inappropriate channel widths, poor channel reuse, overly high transmit power, or badly chosen AP locations, upgrading to Wi-Fi 6 does not automatically remove those problems.&lt;/p&gt;

&lt;p&gt;Protocol-level improvements can make more efficient use of available spectrum.&lt;/p&gt;

&lt;p&gt;They cannot create additional spectrum.&lt;/p&gt;

&lt;p&gt;RF planning therefore remains a fundamental part of WLAN design, regardless of the Wi-Fi generation in use.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. A More Practical Industrial Wi-Fi Design Process
&lt;/h2&gt;

&lt;p&gt;A well-designed industrial WLAN should begin with application requirements rather than AP configuration.&lt;/p&gt;

&lt;p&gt;The first step is to understand the client devices and the traffic they actually generate. Barcode scanners, PDAs, and industrial mobile devices often value low latency, roaming stability, and packet delivery consistency far more than maximum download speed.&lt;/p&gt;

&lt;p&gt;The next step is an RF survey that evaluates AP placement, structural obstacles, reflective surfaces, attenuation, coverage overlap, and actual client behavior.&lt;/p&gt;

&lt;p&gt;Only then should channel width, channel reuse, and transmit power be finalized.&lt;/p&gt;

&lt;p&gt;A practical workflow may look like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application requirements → RF survey → AP placement → channel-width planning → channel reuse → transmit-power tuning → roaming validation → ongoing monitoring and adjustment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This process is more reliable than attempting to solve an industrial wireless problem by changing a single radio parameter in isolation.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Metrics That Matter During Troubleshooting
&lt;/h2&gt;

&lt;p&gt;When troubleshooting this type of WLAN problem, signal bars alone are not enough.&lt;/p&gt;

&lt;p&gt;RSSI and SNR remain useful indicators of received signal quality, but they should be evaluated together with other RF and client metrics, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Channel Utilization&lt;/strong&gt; — how much of the available airtime is already occupied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retry Rate&lt;/strong&gt; — whether frames are being retransmitted frequently&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CCA Busy Time&lt;/strong&gt; — how often the radio senses the channel as busy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roaming Events&lt;/strong&gt; — whether mobile clients transition between APs as expected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHY Rate vs. Actual Throughput&lt;/strong&gt; — whether high negotiated rates translate into usable application performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If RSSI is acceptable but channel utilization and retry rates remain high, the problem may be related to contention or channel design rather than insufficient coverage.&lt;/p&gt;

&lt;p&gt;It is also important to distinguish between PHY rate and real application throughput.&lt;/p&gt;

&lt;p&gt;A reported wireless link rate of 1200 Mbps or 2400 Mbps is not equivalent to application-layer throughput. Protocol overhead, contention, retransmissions, client capability, channel conditions, and medium sharing all reduce the usable rate.&lt;/p&gt;

&lt;p&gt;For many enterprise and industrial applications, a stable and predictable connection is more valuable than a much higher peak rate that fluctuates significantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Recommended Direction for This Scenario
&lt;/h2&gt;

&lt;p&gt;Returning to the original manufacturing-floor scenario, the following conditions have already been identified:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The WLAN operates in the 5 GHz band.&lt;/li&gt;
&lt;li&gt;The infrastructure uses Wi-Fi 6.&lt;/li&gt;
&lt;li&gt;Multiple APs are deployed in the same facility.&lt;/li&gt;
&lt;li&gt;The current channel width is 80 MHz.&lt;/li&gt;
&lt;li&gt;Neighboring APs exhibit significant co-channel contention.&lt;/li&gt;
&lt;li&gt;Mobile clients experience disconnections and unstable throughput.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under these conditions, the most appropriate optimization direction is to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reduce the channel width from 80 MHz to 40 MHz or, where AP density requires it, 20 MHz; increase the number of practical channel assignments; and redesign channel reuse according to the physical AP layout and measured RF conditions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the original multiple-choice scenario, this corresponds to &lt;strong&gt;Option A&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Increasing the channel width to 160 MHz would further reduce channel-planning flexibility. Setting every AP to maximum transmit power could increase cell overlap and contention. Moving the entire WLAN to 2.4 GHz would introduce a different set of limitations, including substantially less channel capacity and typically higher congestion.&lt;/p&gt;

&lt;p&gt;None of those approaches addresses the underlying problem as directly as improved 5 GHz channel planning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Enterprise Wi-Fi design is not about maximizing the performance of a single access point.&lt;/p&gt;

&lt;p&gt;A production WLAN must balance channel width, AP density, channel reuse, transmit power, client behavior, roaming requirements, regulatory constraints, and the physical RF environment.&lt;/p&gt;

&lt;p&gt;In dense offices, warehouses, and metal-intensive industrial facilities, using 20 MHz or 40 MHz channels should not be interpreted as an outdated or low-performance design.&lt;/p&gt;

&lt;p&gt;In many cases, narrower channels are a deliberate engineering choice that trades some theoretical per-AP peak throughput for more reusable spectrum, lower co-channel contention, more predictable roaming, and greater overall WLAN stability.&lt;/p&gt;

&lt;p&gt;The most important principle is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal of Wi-Fi optimization is not to make one AP as fast as possible. It is to make the entire wireless system stable, efficient, and predictable.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>wifi</category>
      <category>network</category>
      <category>5g</category>
      <category>wireless</category>
    </item>
    <item>
      <title>Cisco and Huawei STP Interoperability in Industrial Networks: A Practical VBST Approach</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Mon, 31 Aug 2026 05:58:32 +0000</pubDate>
      <link>https://dev.to/frankzhang/cisco-and-huawei-stp-interoperability-in-industrial-networks-a-practical-vbst-approach-3heo</link>
      <guid>https://dev.to/frankzhang/cisco-and-huawei-stp-interoperability-in-industrial-networks-a-practical-vbst-approach-3heo</guid>
      <description>&lt;p&gt;In industrial network upgrades, a very common situation is that the existing core network has been running on Cisco switches for years, while newly added production lines, PLC cabinets, industrial PCs, or monitoring devices may use Huawei switches due to procurement cycles, cost considerations, or supply-chain constraints.&lt;/p&gt;

&lt;p&gt;In this kind of environment, the real challenge is often not VLAN configuration, but &lt;strong&gt;Spanning Tree Protocol interoperability&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Typical Industrial Network Scenario
&lt;/h2&gt;

&lt;p&gt;Consider a manufacturing workshop where the existing network is based on Cisco switches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                Cisco Core-1
                      │
              ┌───────┴───────┐
              │               │
          Cisco SW         Cisco SW
                              │
                        ┌─────┴─────┐
                        │           │
                    Huawei SW ===== Huawei SW
                        │           │
                    PLC / HMI   Industrial PCs / Cameras
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To improve production network availability, redundant links may exist between the two workshop switches and between the access layer and the core network.&lt;/p&gt;

&lt;p&gt;The workshop may also use multiple VLANs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VLAN 10   PLC Control Network
VLAN 20   HMI / SCADA Network
VLAN 30   Industrial Computers
VLAN 40   Video Surveillance
VLAN 99   Network Management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the existing Cisco core is running &lt;strong&gt;PVST+ or Rapid PVST+&lt;/strong&gt;, simply configuring standard MSTP on the newly added Huawei switches requires careful consideration of how the two spanning-tree mechanisms interact.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why VBST Can Be a Better Fit
&lt;/h2&gt;

&lt;p&gt;One of the defining characteristics of Cisco PVST/PVST+ is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Each VLAN can have its own independent spanning-tree instance.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VLAN 10 → STP Instance 10
VLAN 20 → STP Instance 20
VLAN 30 → STP Instance 30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means that different VLANs can even use different forwarding paths.&lt;/p&gt;

&lt;p&gt;Huawei switches that support &lt;strong&gt;VBST (VLAN-Based Spanning Tree)&lt;/strong&gt; can follow a similar model by creating independent spanning-tree instances for individual VLANs.&lt;/p&gt;

&lt;p&gt;On switch models and software versions that support the required functionality, VBST can be used to interoperate with Cisco PVST+/Rapid PVST+ networks.&lt;/p&gt;

&lt;p&gt;This allows newly introduced Huawei switches to preserve the spanning-tree design logic of the existing Cisco network as much as possible, without forcing a redesign of the entire core STP architecture just to accommodate a few new access switches.&lt;/p&gt;

&lt;p&gt;Conceptually, the relationship can be viewed like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cisco                           Huawei
PVST+/Rapid PVST+               VBST
        │                         │
        ├── VLAN 10 STP ──────────┤
        ├── VLAN 20 STP ──────────┤
        └── VLAN 30 STP ──────────┤
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For industrial networks that have been operating reliably for many years, this is important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The first principle of expansion is usually not to adopt the newest architecture, but to minimize the impact on the existing production network.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why You Should Not Automatically Choose MSTP
&lt;/h2&gt;

&lt;p&gt;MSTP is, of course, a mature and standardized protocol, and it is well suited to large-scale networks.&lt;/p&gt;

&lt;p&gt;Its design philosophy, however, is different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Multiple VLANs
      ↓
Mapped to a smaller number of MST Instances
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VLAN 10, 20 → MSTI 1
VLAN 30, 40 → MSTI 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cisco PVST+, on the other hand, is closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;One VLAN
    ↓
One STP Instance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Therefore, when adding new switches to an existing Cisco PVST+/Rapid PVST+ network, configuring the new devices directly with MSTP does not necessarily mean the network will fail.&lt;/p&gt;

&lt;p&gt;However, the spanning-tree behavior at the boundary, root bridge election, and blocked forwarding paths for different VLANs all require additional validation.&lt;/p&gt;

&lt;p&gt;In a production environment where PLCs, robots, MES terminals, and other industrial systems are already online, changes like this should be handled very carefully.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Matters Most During Industrial Network Deployment
&lt;/h2&gt;

&lt;p&gt;Protocol compatibility is only the first step.&lt;/p&gt;

&lt;p&gt;For example, suppose the original network design specifies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cisco Core-1
     ↓
VLAN 10 Root Primary
VLAN 20 Root Primary
VLAN 30 Root Primary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After introducing Huawei switches, you must make sure that an inappropriate default STP priority does not cause an access-layer switch in the workshop to unexpectedly become the Root Bridge.&lt;/p&gt;

&lt;p&gt;At minimum, the following should be verified:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Is the Root Bridge still located at the core layer?
        ↓
Does the STP topology for each VLAN match the design?
        ↓
Are redundant links correctly placed into Blocking/Discarding state?
        ↓
Can the network converge quickly after the primary link fails?
        ↓
After the link is restored, are there any loops or excessive MAC flapping events?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In an industrial environment, I strongly recommend performing an actual link-failure test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Normal Operation
      ↓
Disconnect the Primary Uplink
      ↓
Observe the Backup Link Take Over
      ↓
Check PLC / HMI Communication
      ↓
Restore the Primary Link
      ↓
Check STP, MAC Address Tables, and Application Status Again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In an office network, a network interruption lasting several seconds may simply feel like a slow-loading webpage.&lt;/p&gt;

&lt;p&gt;In a production network, however, it may result in HMI disconnections, PLC communication alarms, or even production interruptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  A More Practical Design Principle
&lt;/h2&gt;

&lt;p&gt;For a mixed Cisco and Huawei industrial network, the design principle can be summarized in one sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Keep the core unchanged and make the edge compatible. First ensure consistent spanning-tree behavior, then consider architecture standardization later.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If an existing Cisco PVST+/Rapid PVST+ network has already been running reliably, and the requirement is simply to add several Huawei switches that support VBST, using VBST to continue the existing &lt;strong&gt;Per-VLAN STP&lt;/strong&gt; design can often introduce less risk than immediately migrating the entire production network to a different spanning-tree architecture.&lt;/p&gt;

&lt;p&gt;When the core switching infrastructure is eventually replaced, the network can then be redesigned in a more systematic way using technologies such as MSTP, stacking, MLAG, or other redundancy architectures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The most important principle in industrial network upgrades is not that newer protocols are always better.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;maintain compatibility with the existing network, control the scope of change, and ensure that the failure of any single link does not disrupt production.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; VBST support and interoperability with Cisco PVST+/Rapid PVST+ depend on the specific Huawei switch model, VRP software version, and interface configuration. Before deploying this design in a production environment, verify support for the actual hardware and software versions being used, and validate the STP root bridge, trunk VLANs, and link-failover behavior in a test environment.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cisco</category>
      <category>community</category>
      <category>network</category>
    </item>
    <item>
      <title>Why a Windows 11 VM Shows Nearly 100% Memory Usage in Proxmox VE</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Fri, 28 Aug 2026 03:27:35 +0000</pubDate>
      <link>https://dev.to/frankzhang/why-a-windows-11-vm-shows-nearly-100-memory-usage-in-proxmox-ve-1daj</link>
      <guid>https://dev.to/frankzhang/why-a-windows-11-vm-shows-nearly-100-memory-usage-in-proxmox-ve-1daj</guid>
      <description>&lt;p&gt;A Windows 11 VM in Proxmox VE was showing nearly &lt;strong&gt;100% memory usage&lt;/strong&gt; in monitoring.&lt;/p&gt;

&lt;p&gt;Inside Windows Task Manager, however, actual memory usage was only around &lt;strong&gt;30–50%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At first glance, that looks like a monitoring problem.&lt;/p&gt;

&lt;p&gt;It wasn't.&lt;/p&gt;

&lt;p&gt;The issue was in the VM configuration: the &lt;strong&gt;PVE Ballooning Device had been disabled&lt;/strong&gt;, which meant Proxmox VE was not receiving the guest memory statistics needed to reflect the actual Windows memory state.&lt;/p&gt;

&lt;p&gt;I encountered this while monitoring a Proxmox VE environment with OpsHome NOC.&lt;/p&gt;

&lt;p&gt;This post documents how I traced the discrepancy and fixed it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The symptom
&lt;/h2&gt;

&lt;p&gt;On the same Proxmox VE host, the memory usage of Ubuntu VMs looked normal.&lt;/p&gt;

&lt;p&gt;One Windows 11 VM was different.&lt;/p&gt;

&lt;p&gt;The VM had 24 GB of RAM configured, but the monitoring result remained close to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Memory: 100%
Used: about 24.2 GB
Total: 24 GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside Windows 11 Task Manager, however, the VM was clearly not using all of its memory.&lt;/p&gt;

&lt;p&gt;The difference looked roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Monitoring: 90%–100%
Windows 11: 30%–50%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is too large a difference to treat as a normal sampling variation.&lt;/p&gt;

&lt;p&gt;If you encounter something similar, especially when Linux VMs on the same Proxmox host look normal, do not immediately assume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows has a memory leak&lt;/li&gt;
&lt;li&gt;The monitoring threshold is wrong&lt;/li&gt;
&lt;li&gt;The monitoring application is calculating memory incorrectly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more important question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is Proxmox VE actually receiving the correct memory statistics from the Windows guest?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Checking BalloonService inside Windows 11
&lt;/h2&gt;

&lt;p&gt;For Proxmox VE to obtain useful guest memory statistics from a Windows VM, the VirtIO Balloon driver and its related Windows service need to be available.&lt;/p&gt;

&lt;p&gt;Inside Windows 11, I opened PowerShell and checked BalloonService:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-Service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;balloon&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result showed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Running  BalloonService
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the Windows-side BalloonService was already installed and running.&lt;/p&gt;

&lt;p&gt;At this point, the guest-side service did not appear to be the problem.&lt;/p&gt;

&lt;p&gt;The next step was to check the VM configuration on the Proxmox side.&lt;/p&gt;




&lt;h2&gt;
  
  
  Checking the Proxmox VE configuration
&lt;/h2&gt;

&lt;p&gt;On the PVE host, I checked the VM memory configuration.&lt;/p&gt;

&lt;p&gt;In this example, the VM ID is &lt;code&gt;100&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qm config 100 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'^(memory|balloon):'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balloon: 0
memory: 24576
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That was the key clue.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;balloon: 0&lt;/code&gt; means the &lt;strong&gt;Ballooning Device is disabled&lt;/strong&gt; for the VM.&lt;/p&gt;

&lt;p&gt;So the situation was effectively:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows 11
    ↓
VirtIO BalloonService running
    ↓
PVE Ballooning Device disabled
    ↓
Guest memory statistics path incomplete
    ↓
PVE memory information does not reflect
the actual Windows memory state
    ↓
Monitoring receives that upstream data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The monitoring software was not the root cause.&lt;/p&gt;

&lt;p&gt;The VM configuration was incomplete.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this can be confusing
&lt;/h2&gt;

&lt;p&gt;This issue is easy to misdiagnose because Windows itself can continue operating normally.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows boots normally
Applications work normally
Network works normally
Disk works normally
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There may be no obvious guest OS failure.&lt;/p&gt;

&lt;p&gt;The problem only becomes visible when you compare:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows Task Manager
vs.
Proxmox VE memory statistics
vs.
Monitoring data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That makes Ballooning configuration easy to overlook.&lt;/p&gt;

&lt;p&gt;It is especially relevant for Windows VMs that have been migrated from another virtualization platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  This VM had been migrated
&lt;/h2&gt;

&lt;p&gt;VM migration is one situation where I would check Ballooning early.&lt;/p&gt;

&lt;p&gt;When migrating a Windows VM from environments such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VMware&lt;/li&gt;
&lt;li&gt;ESXi&lt;/li&gt;
&lt;li&gt;Hyper-V&lt;/li&gt;
&lt;li&gt;another Proxmox configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;we usually spend most of our time checking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CPU
VirtIO drivers
Disk controller
Network adapter
EFI
TPM
QEMU Guest Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Memory Ballooning may not get the same attention.&lt;/p&gt;

&lt;p&gt;If Ballooning was disabled during migration or while tuning the VM, Windows can continue working normally while guest memory reporting becomes misleading.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fixing the Ballooning configuration
&lt;/h2&gt;

&lt;p&gt;In the Proxmox VE Web UI, open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VM
→ Hardware
→ Memory
→ Edit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then enable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ballooning Device
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is an important distinction here.&lt;/p&gt;

&lt;p&gt;Enabling the Ballooning Device does not necessarily mean you have to let Proxmox dynamically reduce the amount of memory available to the Windows VM.&lt;/p&gt;

&lt;p&gt;If you want the Windows 11 VM to continue using a fixed amount of RAM, you can set the maximum and minimum memory to the same value.&lt;/p&gt;

&lt;p&gt;For this 24 GB VM, I used:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Memory: 24576 MiB
Minimum Memory: 24576 MiB
Ballooning Device: enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This preserves the fixed 24 GB memory allocation while enabling the Ballooning Device needed for the guest memory statistics path.&lt;/p&gt;




&lt;h2&gt;
  
  
  Command-line configuration
&lt;/h2&gt;

&lt;p&gt;The same configuration can also be applied from the PVE command line.&lt;/p&gt;

&lt;p&gt;For VM &lt;code&gt;100&lt;/code&gt; with 24 GB RAM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qm &lt;span class="nb"&gt;set &lt;/span&gt;100 &lt;span class="nt"&gt;--balloon&lt;/span&gt; 24576
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After changing the setting, verify it again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qm config 100 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'^(memory|balloon):'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important point is that it should no longer show:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balloon: 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Fully shut down the Windows VM
&lt;/h2&gt;

&lt;p&gt;After changing the Ballooning configuration, I fully shut down the Windows 11 VM and then started it again.&lt;/p&gt;

&lt;p&gt;I did not rely only on an in-guest Windows restart.&lt;/p&gt;

&lt;p&gt;The Ballooning Device is part of the VM's virtual hardware configuration, so a full stop and start is the safer approach.&lt;/p&gt;

&lt;p&gt;The sequence was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Shut down Windows 11
        ↓
Confirm the VM is stopped in PVE
        ↓
Start the VM again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Verifying Guest Memory Statistics
&lt;/h2&gt;

&lt;p&gt;After Windows 11 started again, I first checked the VM configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qm config 100 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'^(memory|balloon):'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I queried the current VM status through Proxmox VE:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pvesh get /nodes/PVE02/qemu/100/status/current &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output-format&lt;/span&gt; json-pretty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful memory-related fields to look for include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balloon
ballooninfo
free_mem
total_mem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The exact output may vary depending on your Proxmox VE version and VM configuration.&lt;/p&gt;

&lt;p&gt;The important point is that guest memory information should now be available instead of the VM effectively being represented only by its allocated memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changed after the fix?
&lt;/h2&gt;

&lt;p&gt;Before fixing the Ballooning configuration, the situation looked approximately like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows 11 Task Manager: ~40%
Monitoring:              ~100%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After restoring the Ballooning configuration and restarting the VM, the monitoring value gradually returned to a reasonable range:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows 11 Task Manager: ~40%
Monitoring:              ~40%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The values do not have to match exactly every second or every percentage point.&lt;/p&gt;

&lt;p&gt;Small differences are normal.&lt;/p&gt;

&lt;p&gt;There are several reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different sampling intervals&lt;/li&gt;
&lt;li&gt;Windows memory accounting&lt;/li&gt;
&lt;li&gt;Cached memory&lt;/li&gt;
&lt;li&gt;Available memory&lt;/li&gt;
&lt;li&gt;Timing differences between the guest and hypervisor&lt;/li&gt;
&lt;li&gt;Monitoring collection intervals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important result is not exact percentage equality.&lt;/p&gt;

&lt;p&gt;The important result is that the VM no longer remains incorrectly stuck near 100%.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Ubuntu VMs looked normal
&lt;/h2&gt;

&lt;p&gt;One clue in this case was that Ubuntu VMs on the same Proxmox VE host were reporting reasonable memory usage.&lt;/p&gt;

&lt;p&gt;Only the Windows 11 VM looked abnormal.&lt;/p&gt;

&lt;p&gt;That suggested the problem was unlikely to be a global PVE monitoring failure.&lt;/p&gt;

&lt;p&gt;Instead, it pointed toward something specific to the Windows VM or its guest-to-hypervisor statistics path.&lt;/p&gt;

&lt;p&gt;That is why comparing multiple VMs on the same host can be useful during troubleshooting.&lt;/p&gt;

&lt;p&gt;If you see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ubuntu VM: normal
Ubuntu VM: normal
Windows 11 VM: nearly 100%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;while Task Manager shows much lower usage, checking the Windows Ballooning configuration is a good next step.&lt;/p&gt;




&lt;h2&gt;
  
  
  When should you check Ballooning first?
&lt;/h2&gt;

&lt;p&gt;I would check Ballooning relatively early when several of these conditions are present:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Windows VM stays at 90–100% memory usage.&lt;/li&gt;
&lt;li&gt;Windows Task Manager shows substantially lower memory usage.&lt;/li&gt;
&lt;li&gt;Linux VMs on the same PVE host look normal.&lt;/li&gt;
&lt;li&gt;The Windows VM was migrated from VMware, ESXi, Hyper-V or another platform.&lt;/li&gt;
&lt;li&gt;VM memory settings were manually adjusted.&lt;/li&gt;
&lt;li&gt;Ballooning was intentionally disabled to keep memory fixed.&lt;/li&gt;
&lt;li&gt;BalloonService is installed and running inside Windows.&lt;/li&gt;
&lt;li&gt;QEMU Guest Agent is working, but memory statistics still look unreasonable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A configuration such as this deserves particular attention:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balloon: 0
memory: 24576
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;especially when it appears together with a large difference between Windows Task Manager and PVE-based monitoring.&lt;/p&gt;




&lt;h2&gt;
  
  
  QEMU Guest Agent is not the same thing as BalloonService
&lt;/h2&gt;

&lt;p&gt;Another useful distinction is that QEMU Guest Agent and the VirtIO Balloon driver are related to guest integration, but they are not the same component.&lt;/p&gt;

&lt;p&gt;It is possible to have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;QEMU Guest Agent: working
BalloonService: running
Ballooning Device: disabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and still have misleading memory statistics.&lt;/p&gt;

&lt;p&gt;So when troubleshooting this issue, checking only QEMU Guest Agent is not enough.&lt;/p&gt;

&lt;p&gt;The Ballooning configuration itself also needs to be verified.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fixed memory and Ballooning are not mutually exclusive
&lt;/h2&gt;

&lt;p&gt;One reason people disable Ballooning is that they want the VM to always have a fixed amount of memory.&lt;/p&gt;

&lt;p&gt;That requirement is reasonable.&lt;/p&gt;

&lt;p&gt;But disabling the Ballooning Device entirely can also affect the guest memory statistics path.&lt;/p&gt;

&lt;p&gt;For a VM that should always remain at 24 GB, a more useful configuration is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Maximum Memory: 24576 MiB
Minimum Memory: 24576 MiB
Ballooning Device: enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Minimum = Maximum
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;means Proxmox does not have a lower memory target to reclaim toward.&lt;/p&gt;

&lt;p&gt;At the same time, the Ballooning Device remains present for the Windows guest integration path.&lt;/p&gt;




&lt;h2&gt;
  
  
  The complete troubleshooting chain
&lt;/h2&gt;

&lt;p&gt;The final troubleshooting process was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows 11 shows normal memory usage
        ↓
Monitoring shows nearly 100%
        ↓
Compare other VMs on the same PVE host
        ↓
Ubuntu VM memory looks normal
        ↓
Check Windows BalloonService
        ↓
BalloonService is running
        ↓
Check PVE VM configuration
        ↓
Find balloon: 0
        ↓
Enable Ballooning Device
        ↓
Set minimum memory = maximum memory
        ↓
Fully stop and start Windows 11
        ↓
Check PVE Guest Memory Statistics
        ↓
Observe monitoring again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The monitoring software was not the root cause
&lt;/h2&gt;

&lt;p&gt;This is the main lesson from the troubleshooting case.&lt;/p&gt;

&lt;p&gt;OpsHome NOC was displaying the memory information available through the Proxmox VE monitoring path.&lt;/p&gt;

&lt;p&gt;The root cause existed upstream.&lt;/p&gt;

&lt;p&gt;The actual chain was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PVE Ballooning Device disabled
        ↓
Guest Memory Statistics incomplete
        ↓
PVE memory information differs from
the actual Windows memory state
        ↓
Monitoring receives the PVE data
        ↓
Windows VM appears close to 100%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So when monitoring information clearly conflicts with what you see inside a guest operating system, it is worth checking the entire data path before concluding that the monitoring application is calculating incorrectly.&lt;/p&gt;

&lt;p&gt;For a virtualized workload, that path looks roughly like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Guest OS
   ↓
Guest drivers and services
   ↓
Hypervisor
   ↓
Hypervisor API / statistics
   ↓
Monitoring
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every downstream layer depends on the quality of the data provided by the layer before it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final checklist
&lt;/h2&gt;

&lt;p&gt;If a Windows 11 VM appears to use nearly 100% memory in Proxmox VE monitoring while Task Manager says otherwise, try this checklist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Check Windows Task Manager
        ↓
2. Confirm the actual guest memory usage
        ↓
3. Check BalloonService in Windows
        ↓
4. Run:
   qm config &amp;lt;VMID&amp;gt;
        ↓
5. Look for balloon: 0
        ↓
6. Enable the Ballooning Device
        ↓
7. If fixed RAM is required,
   set minimum memory = maximum memory
        ↓
8. Fully shut down the VM
        ↓
9. Start the VM again
        ↓
10. Verify Guest Memory Statistics in PVE
        ↓
11. Observe the monitoring data again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-Service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;balloon&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then on Proxmox VE:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qm config 100 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'^(memory|balloon):'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And after fixing the configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pvesh get /nodes/PVE02/qemu/100/status/current &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output-format&lt;/span&gt; json-pretty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this case, the Windows 11 VM was not actually consuming all 24 GB of its memory.&lt;/p&gt;

&lt;p&gt;The near-100% value was the result of an incomplete memory statistics path between the Windows guest and Proxmox VE.&lt;/p&gt;

&lt;p&gt;The key configuration was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balloon: 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After enabling the Ballooning Device, keeping minimum and maximum memory equal, fully stopping and starting the Windows VM, and verifying the guest memory statistics, the reported memory usage returned to a reasonable range.&lt;/p&gt;

&lt;p&gt;The main takeaway is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Before blaming the monitoring layer, verify that the hypervisor is receiving the data you expect from the guest.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is especially worth remembering after migrating Windows virtual machines between hypervisors.&lt;/p&gt;




&lt;p&gt;This troubleshooting case was originally documented while monitoring a Proxmox VE environment with &lt;strong&gt;OpsHome NOC&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Original article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.opshome.run/articles/opshome-noc-pve-windows-ballooning-memory-monitoring.html" rel="noopener noreferrer"&gt;https://docs.opshome.run/articles/opshome-noc-pve-windows-ballooning-memory-monitoring.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>proxmox</category>
      <category>windows</category>
      <category>virtualization</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>FortiGate Already Has Powerful Management Tools—So Why Do I Still Want a Simpler Status View?</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Wed, 26 Aug 2026 12:16:27 +0000</pubDate>
      <link>https://dev.to/frankzhang/fortigate-already-has-powerful-management-tools-so-why-do-i-still-want-a-simpler-status-view-jg1</link>
      <guid>https://dev.to/frankzhang/fortigate-already-has-powerful-management-tools-so-why-do-i-still-want-a-simpler-status-view-jg1</guid>
      <description>&lt;p&gt;When maintaining FortiGate devices on a daily basis, what I do most often is not change configurations, but first check the current device status. For example, if someone at a remote site reports that the network has become slow, or if a WAN link has just experienced a fluctuation, I usually do not immediately start changing configurations. Instead, I first take a look at the current state of the device.&lt;/p&gt;

&lt;p&gt;Is the device online? Is the WAN link healthy? Is there anything unusual in the upstream or downstream traffic? Have any interfaces gone down? How are CPU and memory utilization looking? Has the Session count changed significantly compared with normal levels? In most cases, after checking these basic indicators, I already have a fairly good idea of where to look next.&lt;/p&gt;

&lt;p&gt;The FortiGate management console can provide all of this information. But sometimes I am not trying to change configuration parameters, nor do I need to enter the full management workflow right away. I simply want to get a quick understanding of the device’s current operating status.&lt;/p&gt;

&lt;p&gt;NOC for FGT started from this very specific need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Being Able to Log In Does Not Mean You Understand the Device Status
&lt;/h2&gt;

&lt;p&gt;FortiGate’s Web GUI is very comprehensive. System status, interfaces, routing, VPN, firewall policies, logs, and various security features can all be managed from within it.&lt;/p&gt;

&lt;p&gt;If I need to modify policies, check routing, or adjust configurations, opening the full management interface makes perfect sense. But if someone simply tells me, “Something seems wrong with the network at this site,” the first step is usually not to change anything. Instead, I first check a few basic indicators such as CPU, Memory, WAN, Interface, and Session status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These indicators may be basic, but they often determine the direction of the troubleshooting process.&lt;/strong&gt; If the WAN link is already down, the problem may not be related to the firewall policy at all. If the interfaces look normal but CPU utilization or Session counts suddenly change significantly, then device load and current traffic should be investigated further. If none of these indicators show anything unusual, I can then gradually expand the scope of troubleshooting to DNS, the upstream network, clients, or the applications themselves.&lt;/p&gt;

&lt;p&gt;For this reason, the first step in many network troubleshooting situations is not changing configurations, but observing the current operating state of the device. I first try to understand what is happening, and then decide whether I need to move on to the CLI, review logs, or inspect specific configurations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbbzn1gna2ms3fr7wx0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbbzn1gna2ms3fr7wx0a.png" alt=" " width="800" height="1576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is also where I started thinking about the information density of NOC for FGT.&lt;/p&gt;




&lt;h2&gt;
  
  
  FortiManager, FortiAnalyzer, and NMS Platforms Already Exist. Why Another Tool?
&lt;/h2&gt;

&lt;p&gt;FortiManager, FortiAnalyzer, as well as systems such as Zabbix, PRTG, Prometheus, and Grafana, all have clearly defined purposes and solve network management problems at different scales and levels.&lt;/p&gt;

&lt;p&gt;If you need to manage a large number of FortiGate devices, centrally configure policies, retain logs over the long term, analyze historical trends, or build a complete monitoring system for an entire infrastructure, these platforms are clearly more suitable. I have no intention of building another NMS, nor did I design NOC for FGT as a smaller version of FortiManager.&lt;/p&gt;

&lt;p&gt;The problem I actually want to solve is much smaller than the problems those platforms are designed to address: I simply want to quickly check how a particular FortiGate is doing right now.&lt;/p&gt;

&lt;p&gt;A complete management platform is concerned with the question, “How should the entire network be managed?” In day-to-day operations, however, sometimes I only need to answer a much more specific question: “Is there anything about this particular device that needs my attention right now?”&lt;/p&gt;

&lt;p&gt;Both needs fall under network management, but their usage scenarios are different.&lt;/p&gt;

&lt;p&gt;For large enterprise environments, centralized management and monitoring platforms remain essential. But for small environments with only one or two FortiGate devices, labs, Homelabs, or temporary troubleshooting scenarios, deploying and maintaining an entire management or monitoring infrastructure just to quickly check device status can sometimes introduce more complexity than the requirement itself. The original concept of NOC for FGT also positioned it as a “lightweight FortiGate monitoring assistant,” and made it clear that it is not intended to replace FortiManager or an enterprise-grade NMS.&lt;/p&gt;

&lt;p&gt;That is why NOC for FGT was never designed around the idea of becoming a “large platform.”&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Keep It Read-Only
&lt;/h2&gt;

&lt;p&gt;When designing NOC for FGT, I have always wanted it to maintain a very clear position: &lt;strong&gt;it is first and foremost a monitoring tool, not a configuration tool.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Network device configurations are often directly tied to real production environments. Whether it is a firewall policy, a routing change, or an interface adjustment, a mistake can affect normal network operations. For a tool whose primary purpose is to quickly check device status, adding a large number of configuration capabilities would not only increase complexity, but also introduce additional operational risk.&lt;/p&gt;

&lt;p&gt;For that reason, NOC for FGT focuses on viewing status information and assisting with diagnosis. Its goal is to help users understand the current operating condition of a device more quickly, rather than take over complete network configuration and management tasks.&lt;/p&gt;

&lt;p&gt;This is not simply a matter of leaving out features. It is a deliberate product boundary. If the purpose of a tool is to help administrators quickly determine whether a device is operating normally, then the first priority should be to make the current state easy to understand, rather than continuously adding management features that are not part of the core use case.&lt;/p&gt;

&lt;p&gt;Keeping the tool read-only also allows NOC for FGT to stay focused on the original problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding the current state of a FortiGate in a simpler and more direct way.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Connect Directly to FortiGate?
&lt;/h2&gt;

&lt;p&gt;Another design decision I made fairly early was to avoid introducing unnecessary intermediate infrastructure.&lt;/p&gt;

&lt;p&gt;The topology of NOC for FGT is straightforward:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn7f257llop8kvpnaptuu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn7f257llop8kvpnaptuu.png" alt=" " width="799" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app communicates directly with the user’s own FortiGate. It does not require an additional cloud server, database, Agent, or intermediate monitoring node. Device connection information is stored securely on the local device, which was also an important consideration when I chose this architecture. This is how I put the Local-First approach into practice.&lt;/p&gt;

&lt;p&gt;If users simply want to view the current status of their own devices, there is no need to introduce an additional backend system just to accomplish that. Fewer components mean lower deployment and maintenance costs, and the overall workflow becomes more direct.&lt;/p&gt;

&lt;p&gt;Of course, this design also involves trade-offs. NOC for FGT does not attempt to provide centralized data storage, long-term log analysis, or large-scale cross-organization device management in the way a full monitoring platform would.&lt;/p&gt;

&lt;p&gt;But that is exactly the experience I want to preserve: &lt;strong&gt;open the tool, then look directly at your own device.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How Are Credentials Stored?
&lt;/h2&gt;

&lt;p&gt;Since NOC for FGT connects directly to FortiGate, how device credentials are stored is something I care about as well.&lt;/p&gt;

&lt;p&gt;Currently, device data remains on the local device. It is not synchronized to the cloud and is not uploaded to third-party services. Passwords used to log in to FortiGate are stored in the iOS &lt;strong&gt;Keychain&lt;/strong&gt; using encrypted system storage, rather than being saved directly in the application’s ordinary data storage.&lt;/p&gt;

&lt;p&gt;When access to the relevant credentials is required, NOC for FGT also supports &lt;strong&gt;Face ID&lt;/strong&gt; authentication. This preserves the convenience of quickly checking device status from a mobile device without weakening the protection of locally stored credentials.&lt;/p&gt;

&lt;p&gt;To me, Local-First means more than simply “no cloud server.” It also reflects a more fundamental principle: &lt;strong&gt;device information and login credentials should remain on the user’s own device whenever possible and be protected by the security mechanisms provided by the operating system.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  CPU Is at 70%. Now What?
&lt;/h2&gt;

&lt;p&gt;There is another issue that is easy to overlook when building a monitoring tool: displaying data does not necessarily mean helping users understand the state of a device.&lt;/p&gt;

&lt;p&gt;For example, suppose CPU utilization is 70%. Looking at that number alone makes it difficult to determine whether a FortiGate is actually experiencing a problem. If the device normally operates at around this level, 70% may be perfectly normal. But if CPU utilization had consistently stayed around 20% and then climbed steadily to 70% over the past hour, that change would be worth investigating.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7hqz9tka3w32xj3qg9cg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7hqz9tka3w32xj3qg9cg.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same applies to Session counts. 10,000 Sessions may already be very high for some devices, while for other models and workloads it may simply represent normal traffic.&lt;/p&gt;

&lt;p&gt;I gradually realized that a more important question than “How much data can the tool display?” is: &lt;strong&gt;Can this data actually help administrators understand the current state of the device?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the moment, NOC for FGT primarily focuses on CPU, Memory, Session, WAN, Interface, and other basic system information. If I continue expanding its capabilities, I would rather focus on trends and diagnostics than simply add more and more numbers to the interface.&lt;/p&gt;

&lt;p&gt;A genuinely useful monitoring tool should not merely tell the user, “CPU is currently at 70%.” It should gradually help the user determine whether “70%” is actually something worth paying attention to in the current environment.&lt;/p&gt;




&lt;p&gt;NOC for FGT continues to focus on a much more specific problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;When needed, help me understand the current state of a FortiGate more quickly.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Knowing what not to build is just as important for a lightweight tool as deciding what to build. Only by keeping its scope under control can the product remain simple and direct over the long term.&lt;/p&gt;




&lt;h2&gt;
  
  
  From “Viewing Status” to “Assisting with Diagnosis”
&lt;/h2&gt;

&lt;p&gt;Looking back, I did not create NOC for FGT because FortiGate lacks management capabilities. Quite the opposite: FortiGate already has a very complete management interface and a mature enterprise ecosystem.&lt;/p&gt;

&lt;p&gt;What actually pushed me to start building this tool was another need I repeatedly encountered in day-to-day operations: not every time I open a device am I trying to change its configuration.&lt;/p&gt;

&lt;p&gt;Often, all we receive is a simple report such as, “Something seems wrong with the network.” From there, we need to quickly determine whether the device is healthy, whether the WAN is online, whether any interfaces are behaving abnormally, or whether system resources have suddenly changed. This information does not directly solve the problem, but it helps us quickly decide what to investigate next.&lt;/p&gt;

&lt;p&gt;If deeper troubleshooting is required, I will still use the FortiGate Web GUI, CLI, logs, or other professional platforms. NOC for FGT is not intended to replace them.&lt;/p&gt;

&lt;p&gt;I would rather have it serve as an observation point at the beginning of the troubleshooting process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1x4pvt7jklnxy7o62lf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1x4pvt7jklnxy7o62lf1.png" alt=" " width="800" height="1576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When all I want to know is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What is happening with this FortiGate right now?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I should be able to get a basic assessment without first entering a complete and complex management workflow.&lt;/p&gt;

&lt;p&gt;To me, that is the problem NOC for FGT was originally created to solve, and it is also why I want to keep it simple.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try NOC for FGT
&lt;/h2&gt;

&lt;p&gt;If you also want a quicker way to check the current status of your FortiGate, NOC for FGT is available on the App Store.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://apps.apple.com/app/noc-for-fgt/id6796713266" rel="noopener noreferrer"&gt;Download NOC for FGT on the App Store&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>fortinet</category>
      <category>ios</category>
      <category>security</category>
    </item>
    <item>
      <title>There Are Already So Many Network Management Tools—Why Is Checking Device Status Still Such a Hassle?</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Tue, 25 Aug 2026 11:36:51 +0000</pubDate>
      <link>https://dev.to/frankzhang/making-infrastructure-management-simpler-why-i-built-opshome-noc-3nak</link>
      <guid>https://dev.to/frankzhang/making-infrastructure-management-simpler-why-i-built-opshome-noc-3nak</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj5dovn7vk51qsiw5mum6.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj5dovn7vk51qsiw5mum6.PNG" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure Is Moving Beyond Traditional IT Boundaries
&lt;/h2&gt;

&lt;p&gt;For many years, infrastructure management was mainly the responsibility&lt;br&gt;
of professional IT teams. Servers, network devices, virtualization&lt;br&gt;
platforms, security appliances, and business systems were maintained by&lt;br&gt;
administrators with specialized knowledge and experience.&lt;/p&gt;

&lt;p&gt;For most users, managing infrastructure meant learning complex concepts,&lt;br&gt;
understanding different vendor tools, and following operational&lt;br&gt;
processes that were often difficult to approach.&lt;/p&gt;

&lt;p&gt;However, this is changing.&lt;/p&gt;

&lt;p&gt;Today, more people are building and managing their own infrastructure&lt;br&gt;
environments. These environments may include home servers, Docker&lt;br&gt;
services, virtualization platforms, small office networks, self-hosted&lt;br&gt;
applications, and private cloud resources.&lt;/p&gt;

&lt;p&gt;Technologies that once existed mainly inside enterprise data centers are&lt;br&gt;
now becoming accessible to a much wider group of users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvgkdkmq38dr9kod78yxm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvgkdkmq38dr9kod78yxm.jpeg" width="685" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But this creates a new challenge:&lt;/p&gt;

&lt;p&gt;More people own infrastructure, but not everyone wants to become a&lt;br&gt;
system administrator.&lt;/p&gt;

&lt;p&gt;They want visibility and control over their environments. They want to&lt;br&gt;
know whether their services are running correctly and whether something&lt;br&gt;
requires attention. However, they do not necessarily want to spend years&lt;br&gt;
learning complex enterprise operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Tools Do Not Always Mean Better Visibility
&lt;/h2&gt;

&lt;p&gt;Over the past decades, infrastructure monitoring has become&lt;br&gt;
significantly more powerful.&lt;/p&gt;

&lt;p&gt;Modern monitoring platforms can collect large amounts of information,&lt;br&gt;
including CPU usage, memory consumption, network traffic, service&lt;br&gt;
availability, logs, and performance metrics.&lt;/p&gt;

&lt;p&gt;From a technical perspective, we have more data than ever before.&lt;/p&gt;

&lt;p&gt;However, having more data does not always mean having a better&lt;br&gt;
understanding of the environment.&lt;/p&gt;

&lt;p&gt;Modern infrastructures are often built from many different components. A&lt;br&gt;
single environment may include virtualization platforms, Docker&lt;br&gt;
workloads, network devices, storage systems, and public-facing services.&lt;/p&gt;

&lt;p&gt;Each platform usually provides its own management interface and&lt;br&gt;
monitoring dashboard.&lt;/p&gt;

&lt;p&gt;For experienced administrators, these tools are extremely valuable. But&lt;br&gt;
for many users, the real challenge is not collecting information.&lt;/p&gt;

&lt;p&gt;The challenge is understanding what the information means.&lt;/p&gt;

&lt;p&gt;Most users are not asking:&lt;/p&gt;

&lt;p&gt;"What is the exact CPU percentage?"&lt;/p&gt;

&lt;p&gt;They are asking:&lt;/p&gt;

&lt;p&gt;"Is my environment healthy?"&lt;/p&gt;

&lt;p&gt;"Is something changing?"&lt;/p&gt;

&lt;p&gt;"Is there anything I should pay attention to?"&lt;/p&gt;

&lt;p&gt;"Do I need to take action?"&lt;/p&gt;

&lt;p&gt;The future of infrastructure tools should not only focus on displaying&lt;br&gt;
more information.&lt;/p&gt;

&lt;p&gt;It should help users build a clearer understanding of their environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  From Metric Collection to Infrastructure Awareness
&lt;/h2&gt;

&lt;p&gt;Traditional monitoring systems are designed around data collection.&lt;/p&gt;

&lt;p&gt;For example, a monitoring system can detect that CPU utilization has&lt;br&gt;
increased from 40% to 80%. This information is accurate.&lt;/p&gt;

&lt;p&gt;But users still need to understand:&lt;/p&gt;

&lt;p&gt;Is this expected?&lt;/p&gt;

&lt;p&gt;Will it affect services?&lt;/p&gt;

&lt;p&gt;Does it require action?&lt;/p&gt;

&lt;p&gt;This is the difference between collecting metrics and understanding&lt;br&gt;
infrastructure.&lt;/p&gt;

&lt;p&gt;A better infrastructure experience should not require every user to&lt;br&gt;
become an expert before they can understand their own environment.&lt;/p&gt;

&lt;p&gt;The role of modern tools should be to transform complex technical&lt;br&gt;
information into meaningful operational awareness.&lt;/p&gt;

&lt;p&gt;This follows a broader software design principle:&lt;/p&gt;

&lt;p&gt;Hide unnecessary complexity and help users focus on outcomes.&lt;/p&gt;

&lt;p&gt;Infrastructure management should move in the same direction.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rethinking the NOC Experience
&lt;/h2&gt;

&lt;p&gt;Traditionally, a NOC (Network Operations Center) represents a&lt;br&gt;
professional enterprise environment.&lt;/p&gt;

&lt;p&gt;It usually includes dedicated monitoring platforms, operations teams,&lt;br&gt;
alerting workflows, and structured incident management processes.&lt;/p&gt;

&lt;p&gt;This model works extremely well for large organizations.&lt;/p&gt;

&lt;p&gt;However, many modern infrastructure environments do not fit this model.&lt;/p&gt;

&lt;p&gt;A developer may run multiple Docker services.&lt;/p&gt;

&lt;p&gt;A small business may maintain its own servers and network equipment.&lt;/p&gt;

&lt;p&gt;A technology enthusiast may operate a private cloud or virtualization&lt;br&gt;
environment.&lt;/p&gt;

&lt;p&gt;These environments may not require a full enterprise NOC, but they still&lt;br&gt;
need visibility and operational awareness.&lt;/p&gt;

&lt;p&gt;This creates a new opportunity:&lt;/p&gt;

&lt;p&gt;How can the core ideas behind NOC capabilities be delivered in a simpler&lt;br&gt;
and more accessible way?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fen95qasc5krdnadi4mz5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fen95qasc5krdnadi4mz5.png" alt=" " width="600" height="1182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is not to reduce the value of professional infrastructure&lt;br&gt;
management.&lt;/p&gt;

&lt;p&gt;The goal is to redesign the experience.&lt;/p&gt;

&lt;p&gt;A great tool should not require users to become experts before they can&lt;br&gt;
use it.&lt;/p&gt;

&lt;p&gt;Instead, it should help users gradually understand their own&lt;br&gt;
infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Design Philosophy Behind OpsHome NOC
&lt;/h2&gt;

&lt;p&gt;OpsHome NOC was created from this perspective.&lt;/p&gt;

&lt;p&gt;It is not designed to replace enterprise monitoring platforms such as&lt;br&gt;
Zabbix, Prometheus, or Grafana. Those platforms solve important problems&lt;br&gt;
around deep monitoring, analytics, and large-scale operations.&lt;/p&gt;

&lt;p&gt;Enterprise monitoring platforms are excellent for deep analysis. OpsHome NOC focuses on another layer: helping users quickly understand the operational state of their environment.&lt;/p&gt;

&lt;p&gt;OpsHome NOC focuses on a different challenge:&lt;/p&gt;

&lt;p&gt;How can users quickly and clearly understand the overall health of their&lt;br&gt;
infrastructure?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0v34td3soh8zqughvtrl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0v34td3soh8zqughvtrl.png" alt=" " width="800" height="1576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea is to bring visibility across different types of environments,&lt;br&gt;
including servers, virtualization platforms, Docker services, network&lt;br&gt;
devices, and public services.&lt;/p&gt;

&lt;p&gt;For users, the important question is not only the status of individual&lt;br&gt;
components.&lt;/p&gt;

&lt;p&gt;The bigger question is:&lt;/p&gt;

&lt;p&gt;"How is my infrastructure as a whole?"&lt;/p&gt;

&lt;p&gt;By combining different infrastructure perspectives into a simpler&lt;br&gt;
experience, OpsHome NOC aims to reduce complexity and make&lt;br&gt;
infrastructure visibility more approachable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Behind OpsHome NOC: A Layered Approach to Infrastructure Visibility
&lt;/h2&gt;

&lt;p&gt;To provide a simpler monitoring experience, OpsHome NOC is designed&lt;br&gt;
around a layered architecture that separates user experience, data&lt;br&gt;
processing, and infrastructure communication.&lt;/p&gt;

&lt;p&gt;The mobile application acts as the primary interface, allowing users to&lt;br&gt;
view infrastructure status, review important information, and understand&lt;br&gt;
the health of their environment from anywhere.&lt;/p&gt;

&lt;p&gt;Behind the application, the cloud API layer provides the connection&lt;br&gt;
between the mobile experience and infrastructure data. It manages&lt;br&gt;
communication, organizes information, and enables a consistent&lt;br&gt;
experience across different infrastructure sources.&lt;/p&gt;

&lt;p&gt;For private environments, the local probe approach allows users to&lt;br&gt;
connect their own infrastructure directly. Instead of requiring every&lt;br&gt;
device or service to expose information publicly, the probe works within&lt;br&gt;
the user's environment and collects the required operational&lt;br&gt;
information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0f22dwvqqgu2yvfn2z7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0f22dwvqqgu2yvfn2z7.png" alt=" " width="800" height="1576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This architecture follows an important principle:&lt;/p&gt;

&lt;p&gt;The complexity of infrastructure should remain behind the system, while&lt;br&gt;
the user experience should remain simple.&lt;/p&gt;

&lt;p&gt;Users should not need to understand every technical detail behind&lt;br&gt;
virtualization platforms, containers, servers, or network devices just&lt;br&gt;
to know whether their environment is healthy.&lt;/p&gt;

&lt;p&gt;The goal is to transform complex infrastructure information into a clear&lt;br&gt;
operational view.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mobile as a New Infrastructure Management Interface
&lt;/h2&gt;

&lt;p&gt;Mobile devices have already become an important way people manage their&lt;br&gt;
digital lives.&lt;/p&gt;

&lt;p&gt;However, infrastructure management still relies heavily on desktop&lt;br&gt;
dashboards and traditional web consoles.&lt;/p&gt;

&lt;p&gt;Professional management platforms will always have an important role.&lt;/p&gt;

&lt;p&gt;But for daily checks, quick status reviews, and remote visibility,&lt;br&gt;
mobile devices provide a more natural experience.&lt;/p&gt;

&lt;p&gt;A mobile NOC is not simply about putting complex dashboards onto a&lt;br&gt;
smaller screen.&lt;/p&gt;

&lt;p&gt;It requires a different way of thinking:&lt;/p&gt;

&lt;p&gt;What information does a user actually need when they are away from their&lt;br&gt;
desk?&lt;/p&gt;

&lt;p&gt;In many cases, users do not need every available metric.&lt;/p&gt;

&lt;p&gt;They need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Current health status&lt;/li&gt;
&lt;li&gt;  Important changes&lt;/li&gt;
&lt;li&gt;  Potential issues&lt;/li&gt;
&lt;li&gt;  Areas that require attention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where mobile infrastructure management can provide additional&lt;br&gt;
value.&lt;/p&gt;




&lt;h2&gt;
  
  
  Making Infrastructure More Accessible
&lt;/h2&gt;

&lt;p&gt;In the future, infrastructure will continue becoming more distributed.&lt;/p&gt;

&lt;p&gt;Cloud services, virtualization, containers, self-hosted applications,&lt;br&gt;
and edge environments will allow more people to operate their own&lt;br&gt;
technology systems.&lt;/p&gt;

&lt;p&gt;Infrastructure management should not remain limited to a small group of&lt;br&gt;
specialists.&lt;/p&gt;

&lt;p&gt;Just as smartphones made photography accessible without requiring&lt;br&gt;
everyone to become a professional photographer, modern infrastructure&lt;br&gt;
tools should make powerful capabilities easier to approach.&lt;/p&gt;

&lt;p&gt;The goal is not to remove expertise.&lt;/p&gt;

&lt;p&gt;The goal is to make expertise more accessible.&lt;/p&gt;

&lt;p&gt;This is the direction OpsHome NOC continues to explore:&lt;/p&gt;

&lt;p&gt;Making infrastructure management simpler, more intuitive, and available&lt;br&gt;
to more users.&lt;/p&gt;

&lt;p&gt;Helping people not only own their infrastructure, but also understand&lt;br&gt;
and control it.&lt;/p&gt;




&lt;p&gt;Learn more:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opshome.run" rel="noopener noreferrer"&gt;https://opshome.run&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Technical articles:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.opshome.run" rel="noopener noreferrer"&gt;https://docs.opshome.run&lt;/a&gt;&lt;/p&gt;

</description>
      <category>networking</category>
      <category>infrastructure</category>
      <category>homelab</category>
      <category>devops</category>
    </item>
    <item>
      <title>Private Network Monitoring: Why Inside-Out Monitoring Is Becoming More Important</title>
      <dc:creator>Frank Zhang</dc:creator>
      <pubDate>Wed, 19 Aug 2026 05:20:58 +0000</pubDate>
      <link>https://dev.to/frankzhang/private-network-monitoring-why-inside-out-monitoring-is-becoming-more-important-3io2</link>
      <guid>https://dev.to/frankzhang/private-network-monitoring-why-inside-out-monitoring-is-becoming-more-important-3io2</guid>
      <description>&lt;p&gt;External monitoring was the only practical option for a long time. Now it is not. And the difference matters more than most people realize.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Old Way Had a Hidden Cost
&lt;/h2&gt;

&lt;p&gt;The traditional approach to uptime monitoring goes like this: sign up for a cloud monitoring service, enter the public URL of your service, and wait for alerts when something breaks. Simple. Familiar. And for public websites, it still makes complete sense.&lt;/p&gt;

&lt;p&gt;But somewhere along the way, this model got stretched into territory it was never designed for. People started using external monitors for NAS devices, internal dashboards, home servers, self-hosted apps, private APIs — services that were never meant to be reachable from the outside. And to make the monitoring work, they started opening ports. Adding reverse proxies. Punching holes in firewalls. Exposing management interfaces to the public internet just so a third-party service could check if they were online.&lt;/p&gt;

&lt;p&gt;That is a significant tradeoff to accept, and most people accept it quietly because they don't see an alternative.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Give Up When You Monitor From Outside
&lt;/h2&gt;

&lt;p&gt;External monitoring works by simulating what a user on the public internet would see — an &lt;code&gt;HTTP GET&lt;/code&gt; from a remote probe server, a &lt;code&gt;TCP SYN&lt;/code&gt; to a port, an &lt;code&gt;ICMP echo&lt;/code&gt; request. That is genuinely useful signal for public infrastructure. But it comes with several costs that are easy to overlook.&lt;/p&gt;

&lt;h3&gt;
  
  
  You expose your attack surface
&lt;/h3&gt;

&lt;p&gt;To be checked from outside, a service has to be reachable from outside. That means open ports, public &lt;code&gt;DNS A&lt;/code&gt; records, or a reverse proxy forwarding traffic inward through &lt;code&gt;NAT&lt;/code&gt;. Every one of those is an entry point. You are expanding your attack surface not because your service needs to be public, but because your monitoring tool needs to reach it.&lt;/p&gt;

&lt;p&gt;Attackers routinely run &lt;code&gt;Shodan&lt;/code&gt; scans and port sweeps looking for exposed management interfaces — Synology DSM on &lt;code&gt;:5001&lt;/code&gt;, Proxmox VE on &lt;code&gt;:8006&lt;/code&gt;, Portainer on &lt;code&gt;:9000&lt;/code&gt;, Grafana on &lt;code&gt;:3000&lt;/code&gt;. If your monitoring requires these to be reachable from the public internet, you have already answered a question that is better left unanswered.&lt;/p&gt;

&lt;h3&gt;
  
  
  You hand metadata to a third party
&lt;/h3&gt;

&lt;p&gt;External monitoring services learn quite a bit about your infrastructure just by doing their job. Your public IP addresses. The &lt;code&gt;HTTP&lt;/code&gt; fingerprint of your services. Response times and &lt;code&gt;TTL&lt;/code&gt; patterns. &lt;code&gt;TLS&lt;/code&gt; certificate details and renewal windows. When your systems restart. What software versions you run.&lt;/p&gt;

&lt;p&gt;For a public website this is fine — that information is already public. For a private NAS, a self-hosted &lt;code&gt;Vaultwarden&lt;/code&gt; instance, or a home &lt;code&gt;Proxmox&lt;/code&gt; cluster, it is a different situation. Your infrastructure topology is not something that needs to live on a vendor's servers indefinitely.&lt;/p&gt;

&lt;h3&gt;
  
  
  External monitoring depends on inbound reachability. Private monitoring does not.
&lt;/h3&gt;

&lt;p&gt;To be clear upfront: OpsHome NOC is a SaaS product. The Docker Probe connects outbound to OpsHome Cloud over HTTPS — and if your ISP goes completely dark, the probe loses its reporting path too. We are not going to pretend otherwise.&lt;/p&gt;

&lt;p&gt;But that is not the failure mode that causes the most noise in practice. The real problem is &lt;strong&gt;inbound reachability failures&lt;/strong&gt; — situations where your internal services are perfectly healthy, but the external probe cannot reach them because of something on the network boundary.&lt;/p&gt;

&lt;p&gt;Consider: &lt;code&gt;CGNAT&lt;/code&gt; carriers assign private &lt;code&gt;WAN&lt;/code&gt; addresses to residential customers, making inbound connections structurally impossible regardless of port forwarding rules. Dynamic IP assignments change without warning. Some ISPs apply &lt;code&gt;DPI&lt;/code&gt; filtering to inbound traffic on non-standard ports. &lt;code&gt;BGP&lt;/code&gt; route instability between a monitoring provider's datacenter and your upstream can make your edge appear unreachable while your local network runs cleanly.&lt;/p&gt;

&lt;p&gt;In every one of these cases, an external monitor reports your service as down. The probe does not, because it never depended on inbound reachability in the first place — it connects outbound to a stable cloud endpoint over &lt;code&gt;TCP 443&lt;/code&gt;, which is the most consistently available path in almost any network environment.&lt;/p&gt;

&lt;p&gt;The distinction matters: private monitoring reduces &lt;strong&gt;false positives from inbound path failures&lt;/strong&gt;. It is not immune to a complete ISP outage. If you lose your internet connection entirely, you lose monitoring visibility either way — and understanding that difference is part of operating a monitoring system honestly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changes When You Monitor From Inside
&lt;/h2&gt;

&lt;p&gt;Private monitoring inverts the model. Instead of reaching into your network from outside, a small agent runs inside your network and reaches out. The direction reverses. The implications are significant.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nothing needs to be exposed
&lt;/h3&gt;

&lt;p&gt;A private monitoring agent connects outbound to the cloud over HTTPS — the same direction as any browser, any software update, any API call your apps already make. There are no inbound ports to open. No firewall rules to add. No reverse proxy to configure. Your router's NAT stays closed.&lt;/p&gt;

&lt;p&gt;Your NAS panel, your Proxmox interface, your internal services — they stay exactly as unreachable as before. The monitor checks them by name or private IP from inside the network, the same way you would from your laptop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local failures become visible, not invisible
&lt;/h3&gt;

&lt;p&gt;When you monitor a service from inside the same network, you see what the service is actually doing — not what it looks like through one particular internet path. A container that crashed but left its port bound would fool an external &lt;code&gt;TCP&lt;/code&gt; check. A service returning &lt;code&gt;HTTP 502&lt;/code&gt; from a broken upstream would look perfectly reachable from outside. A &lt;code&gt;Synology DSM&lt;/code&gt; volume in degraded state has no public-facing signal at all.&lt;/p&gt;

&lt;p&gt;Private monitoring checks what is real. External monitoring checks what is visible from one vantage point on the public internet. These are not the same thing, and the gap between them is where silent failures live.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fewer false alarms from network boundary noise
&lt;/h3&gt;

&lt;p&gt;External monitoring generates false alarms when the network path between the probe server and your edge is disrupted — not because your services failed, but because the monitoring infrastructure could not reach them. For home and homelab users this happens more often than people expect: carrier &lt;code&gt;CGNAT&lt;/code&gt;, dynamic &lt;code&gt;DNS&lt;/code&gt; propagation lag, residential ISP routing quirks, and brief &lt;code&gt;WAN&lt;/code&gt; address changes all trigger it.&lt;/p&gt;

&lt;p&gt;The probe does not depend on that path. It reports outbound over &lt;code&gt;TCP 443&lt;/code&gt; to a stable cloud endpoint. The signal you get is cleaner — closer to "did the service actually fail" rather than "was the service reachable from a third-party datacenter in another country at that particular moment."&lt;/p&gt;

&lt;p&gt;To be direct: a genuine total internet outage affects both. The probe cannot report without connectivity. The honest framing is that private monitoring reduces the &lt;em&gt;noise floor&lt;/em&gt; of your alerting, not that it eliminates the dependency on connectivity altogether.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Private Monitoring Can See That External Monitoring Cannot
&lt;/h2&gt;

&lt;p&gt;This is where the technical gap becomes concrete. External monitoring checks a network endpoint — a port, a URL, a DNS response. It cannot see anything beyond the response it receives. Private monitoring runs from inside the same environment as your infrastructure, which means it has access to context that simply does not exist on the public internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Synology DSM — beyond port reachability
&lt;/h3&gt;

&lt;p&gt;A Synology NAS running &lt;code&gt;DSM 7&lt;/code&gt; exposes a management interface on port &lt;code&gt;5001&lt;/code&gt;. An external monitor can tell you whether that port is responding. It cannot tell you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether a &lt;code&gt;RAID&lt;/code&gt; volume is degraded or rebuilding&lt;/li&gt;
&lt;li&gt;Whether disk temperatures are approaching the thermal threshold&lt;/li&gt;
&lt;li&gt;Whether the system is under memory pressure from running containers&lt;/li&gt;
&lt;li&gt;Whether a &lt;code&gt;Docker&lt;/code&gt; container on the NAS is in a crash loop&lt;/li&gt;
&lt;li&gt;What the real-time disk &lt;code&gt;I/O&lt;/code&gt; utilization looks like across physical drives&lt;/li&gt;
&lt;li&gt;How long the system has been running since the last restart&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A private monitoring agent running on the NAS itself — or inside the same network — can collect all of this. The difference between "the DSM page loaded" and "the NAS is healthy" is significant, and external monitoring cannot bridge it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwn0cldpxm9imq7x4imfg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwn0cldpxm9imq7x4imfg.webp" alt="OpsHome NOC private monitoring" width="600" height="1299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OpsHome NOC — CPU, memory, temperature, uptime, and container count, all collected from inside the private network. None of this is visible to an external monitor.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Proxmox VE — cluster state is not a public endpoint
&lt;/h3&gt;

&lt;p&gt;Proxmox exposes its management API on port &lt;code&gt;8006&lt;/code&gt;. External monitoring can confirm the API is responding. It cannot tell you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether a &lt;code&gt;VM&lt;/code&gt; or &lt;code&gt;LXC&lt;/code&gt; container is running, stopped, or paused&lt;/li&gt;
&lt;li&gt;Whether a storage backend — &lt;code&gt;ZFS pool&lt;/code&gt;, &lt;code&gt;LVM&lt;/code&gt;, &lt;code&gt;NFS&lt;/code&gt;, &lt;code&gt;Ceph&lt;/code&gt; — is healthy or degraded&lt;/li&gt;
&lt;li&gt;Whether a node in the cluster has lost quorum&lt;/li&gt;
&lt;li&gt;Whether CPU steal time is elevated on a hypervisor host&lt;/li&gt;
&lt;li&gt;What the per-VM memory balloon pressure looks like&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Infrastructure state is not a public URL. It lives inside the management plane, and the management plane is not something you want exposed to the internet just so a monitoring tool can read it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker containers — names, not just ports
&lt;/h3&gt;

&lt;p&gt;Every external monitor requires a hostname or IP address and a port. Docker containers often do not have stable, predictable ports from the outside. They may bind to &lt;code&gt;127.0.0.1&lt;/code&gt; only, use internal &lt;code&gt;bridge&lt;/code&gt; networks, or sit behind a reverse proxy that routes by &lt;code&gt;Host&lt;/code&gt; header.&lt;/p&gt;

&lt;p&gt;A private monitoring agent running inside the Docker network can reach containers by name — &lt;code&gt;http://nextcloud:80&lt;/code&gt;, &lt;code&gt;http://vaultwarden:3000&lt;/code&gt; — without any of those services being reachable from outside. No port mapping required. No reverse proxy required for the health check. The container either responds from inside its network or it does not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Infrastructure That Actually Exists Today
&lt;/h2&gt;

&lt;p&gt;The growth of homelab culture, self-hosted software, NAS ecosystems, and personal cloud infrastructure has quietly changed what "my services" means for a large number of people. Five years ago, most personal infrastructure was entirely cloud-hosted and entirely public. Today, a significant portion is private by design: private IPs, private networks, services that are meant to be reached only from inside the home or office.&lt;/p&gt;

&lt;p&gt;Most uptime monitoring tools were built for the world where all services have public domain names and external reach is guaranteed. That model works for what it was designed for. It does not map well to a Synology NAS running &lt;code&gt;Jellyfin&lt;/code&gt;, a Proxmox cluster hosting a handful of &lt;code&gt;LXC&lt;/code&gt; containers, or a Raspberry Pi running &lt;code&gt;Pi-hole&lt;/code&gt; and &lt;code&gt;Home Assistant&lt;/code&gt; behind a residential ISP.&lt;/p&gt;

&lt;p&gt;Private monitoring is not a niche feature. It is an adaptation to how infrastructure actually looks for a growing segment of users — one that the tooling has been slow to catch up to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Devices. Your Network. Your Rules.
&lt;/h2&gt;

&lt;p&gt;The ability to know whether your services are healthy should not require you to expose management interfaces to the public internet. It should not require you to open inbound ports on a residential connection. It should not require your NAS administration panel to be reachable from a monitoring provider's datacenter.&lt;/p&gt;

&lt;p&gt;Private monitoring is what it looks like when the monitoring model fits the infrastructure — not the other way around. The agent runs inside your network. It checks what is actually there. Results go out over a standard outbound connection. Access does not come in.&lt;/p&gt;

&lt;p&gt;You built the infrastructure. You should be the one who can see it clearly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where This Is Going
&lt;/h2&gt;

&lt;p&gt;More services are running privately. More users are running their own hardware. The combination of NAS platforms, container runtimes, and virtualization tools that were once datacenter-only is now sitting in spare bedrooms and home offices around the world. The monitoring model needs to follow the infrastructure, not the other way around.&lt;/p&gt;

&lt;p&gt;Private-first monitoring will become the standard for anyone running serious personal infrastructure — not because external monitoring is going away, but because the combination of internal health visibility and external reachability checking is obviously more complete than either one alone. External monitoring tells you what the world can see. Private monitoring tells you what is actually happening. Both answers matter.&lt;/p&gt;

&lt;p&gt;The question is not whether private monitoring belongs in a serious setup. The question is how long it takes for the tooling to catch up with the infrastructure it needs to serve.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;OpsHome NOC&lt;/strong&gt; was built around this model. The Docker Probe is a lightweight &lt;code&gt;Go&lt;/code&gt; binary running inside a hardened container on your network. It connects outbound over &lt;code&gt;HTTPS/TLS&lt;/code&gt; — no open ports, no inbound firewall rules, no third-party access to your services. Cloud monitoring handles your public endpoints via &lt;code&gt;HTTP&lt;/code&gt;, &lt;code&gt;TCP&lt;/code&gt;, &lt;code&gt;SSL&lt;/code&gt;, &lt;code&gt;DNS&lt;/code&gt;, and &lt;code&gt;ICMP&lt;/code&gt;. Private monitoring handles everything behind your &lt;code&gt;NAT&lt;/code&gt;. You see both from the same app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.opshome.run/docs/docker-probe/install/" rel="noopener noreferrer"&gt;Read the Install Docker Probe for private homelab monitoring →&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;OpsHome NOC&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Private monitoring for NAS, Docker, Homelab, and personal infrastructure.&lt;br&gt;&lt;br&gt;
Your devices. Your network. Your rules.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://docs.opshome.run/articles/private-monitoring-future.html" rel="noopener noreferrer"&gt;OpsHome Docs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>monitoring</category>
      <category>devops</category>
      <category>homelab</category>
      <category>selfhosted</category>
    </item>
  </channel>
</rss>
