  We design and implement two single-pass semi-streaming algorithms for the
maximum weight $k$-disjoint matching ($k$-DM) problem. Given an integer $k$,
the $k$-DM problem is to find $k$ pairwise edge-disjoint matchings such that
the sum of the weights of the matchings is maximized. For $k \geq 2$, this
problem is NP-hard. Our first algorithm is based on the primal-dual framework
of a linear programming relaxation of the problem and is
$\frac{1}{3+\varepsilon}$-approximate. We also develop an approximation
preserving reduction from $k$-DM to the maximum weight $b$-matching problem.
Leveraging this reduction and an existing semi-streaming $b$-matching
algorithm, we design a $(\frac{1}{2+\varepsilon})(1 -
\frac{1}{k+1})$-approximate semi-streaming algorithm for $k$-DM. For any
constant $\varepsilon > 0$, both of these algorithms require $O(nk
\log_{1+\varepsilon}^2 n)$ bits of space. To the best of our knowledge, this is
the first study of semi-streaming algorithms for the $k$-DM problem.
  We compare our two algorithms to state-of-the-art offline algorithms on 95
real-world and synthetic test problems, including thirteen graphs generated
from data center network traces. On these instances, our streaming algorithms
used significantly less memory (ranging from 6$\times$ to 512$\times$ less) and
were faster in runtime than the offline algorithms. Our solutions were often
within 5% of the best weights from the offline algorithms. We highlight that
the existing offline algorithms run out of 1 TB memory for most of the large
instances ($>1$ billion edges), whereas our streaming algorithms can solve
these problems using only 100 GB memory for $k=8$.
