diff --git a/src/slurmd/io.h b/src/slurmd/io.h
index bb93b9c5072ed7d8b5abe2f358be50d3a0a33f92..030a8dec86b7af4d9261aede1d671c1a57b60f63 100644
--- a/src/slurmd/io.h
+++ b/src/slurmd/io.h
@@ -35,8 +35,8 @@
  * The message cache uses up free message buffers, so STDIO_MAX_MSG_CACHE
  * must be a number smaller than STDIO_MAX_FREE_BUF.
  */
-#define STDIO_MAX_FREE_BUF 10
-#define STDIO_MAX_MSG_CACHE 5
+#define STDIO_MAX_FREE_BUF 1024
+#define STDIO_MAX_MSG_CACHE 128
 
 struct io_buf {
 	int ref_count;
diff --git a/src/srun/io.h b/src/srun/io.h
index 468e3987e22399b25172e378491039607251e39a..5078c62eb16fef72a7e549b31995b9814b37e299 100644
--- a/src/srun/io.h
+++ b/src/srun/io.h
@@ -30,6 +30,8 @@
 #include "src/common/io_hdr.h"
 #include "src/srun/srun_job.h"
 
+#define STDIO_MAX_FREE_BUF 1024
+
 struct io_buf {
 	int ref_count;
 	uint32_t length;
diff --git a/src/srun/srun_job.c b/src/srun/srun_job.c
index 19260fc92f3016aac5dd8d05c759c38bdd5a29c8..5c9727e33fd9a31649c47a47b7f0c73686b58954 100644
--- a/src/srun/srun_job.c
+++ b/src/srun/srun_job.c
@@ -494,11 +494,11 @@ _job_create_internal(allocation_info_t *info)
 	/* "nhosts" number of IO protocol sockets */
 	job->ioserver = (eio_obj_t **)xmalloc(job->nhosts*sizeof(eio_obj_t *));
 	job->free_incoming = list_create(NULL); /* FIXME! Needs destructor */
-	for (i = 0; i < 10; i++) {
+	for (i = 0; i < STDIO_MAX_FREE_BUF; i++) {
 		list_enqueue(job->free_incoming, alloc_io_buf());
 	}
 	job->free_outgoing = list_create(NULL); /* FIXME! Needs destructor */
-	for (i = 0; i < 10; i++) {
+	for (i = 0; i < STDIO_MAX_FREE_BUF; i++) {
 		list_enqueue(job->free_outgoing, alloc_io_buf());
 	}