1. A non-transitory computer readable medium comprising software instructions, which when executed by a processor perform a method, the method comprising: receiving, by an input/output (I/O) Subsystem, a request to use an I/O device from a process; determining, by the I/O Subsystem, a first resource to service the request; generating, by the I/O Subsystem, a first I/O object corresponding to the first resource, wherein the first I/O object is unbound; sending, by the I/O Subsystem, the first I/O object to a Non-Uniform Memory Access (NUMA) I/O Framework; provide, by a Locality Group Module, in response to receiving a NUMA node identifier from the NUMA I/O Framework, a reference to a first NUMA node of the plurality of NUMA nodes, wherein the first NUMA node is directly connected to a NUMA node corresponding to the received NUMA node identifier; selecting, by the NUMA I/O Framework, the first NUMA node of a plurality of NUMA nodes, to which to bind the first I/O object; binding, by the NUMA I/O Framework, the first I/O object to the first NUMA node; and servicing the request by processing, on the first NUMA node, the first resource corresponding to the first I/O object.