One approach could be fix a variable spacing above the subsections with the titlesec package and left to LaTeX to do the best. In the MWE below is from 2.8ex to 9ex so LaTeX use a spacing of 3ex when possible, otherwise is enlarged more or less, or even reduced in a barely perceptible extent, in order to obtain the best results.
You can combine this also with a variable paragraph skips to obtain a better result (as showeed in the MWE).
Note that paragragh/subsection splitting is almost avoided completely if you apply huge spacing ranges, but I do not think it's a good idea for more than 3 or 4 lines. You should play with these values in your final text to find a reasonable range and allow paragraph breaks in some cases (i.e, check that there are not ugly page breaks after a few lines in your pages). See also How do I prevent widow/orphan lines?.
In any case, remember that you can always force large unbreakable blocks using a minipage environment or a \parblock command (manually for some final tuning or in a macro for general use, as in the MWE).
\documentclass{article}
\usepackage{lipsum} % to generate dummy text for the MWE
\usepackage{titlesec}
\titlespacing*{\subsection}{0em}{3ex plus 9ex minus .2ex}{1ex plus .0ex minus .0ex}
\setlength{\parskip}{1ex plus 3ex minus 0ex}
\newcommand\monoliticsubsec[2]{
\noindent
\begin{minipage}{\textwidth}
\subsection{#1}#2
\end{minipage}}
\begin{document}
\section{A section}
\subsection{A subsection}\lipsum[1-2]
\subsection{A subsection}\lipsum[2]
\subsection{A subsection}\lipsum[3-4]
\subsection{A subsection}\lipsum[4]
\subsection{A subsection}\lipsum[5]
\monoliticsubsec{A unbreakable section}{\lipsum[1-3]}
\subsection{A subsection}\lipsum[6]
\subsection{A subsection}\lipsum[7]
\subsection{A subsection}\lipsum[8]
\subsection{A subsection}\lipsum[9]
\subsection{A subsection}\lipsum[10]
\subsection{A subsection}\lipsum[11]
\subsection{A subsection}\lipsum[12]
\subsection{A subsection}\lipsum[13]
\subsection{A subsection}\lipsum[14]
\subsection{A subsection}\lipsum[15]
\subsection{A subsection}\lipsum[16]
\subsection{A subsection}\lipsum[17]
\subsection{A subsection}\lipsum[18]
\subsection{A subsection}\lipsum[19]
\subsection{A long subsection}\lipsum[20-25]
\end{document}
subsection'environment' is not a floating environment, but perhaps, it is possible to use thefloatpackage to define a new floating environment which acts assubsection, starting at new pages if needed, but this would also mean, that due to some reasons, saysubsection 1.1could appear aftersubsection 1.2, which is probably not desired by you? It is in my opinion also not a feature connected with a particular page layout. – Feb 25 '14 at 09:25titlesecpackage with thenobottomtitlesoption and syaing, e.g.:\renewcommand{\bottomtitlespace}{5\baselineskip}. This would ensure the shortest subsections couldn't be split. It would also be the case for sections. – Bernard Feb 25 '14 at 14:38