diff --git a/src/ioq_osq.erl b/src/ioq_osq.erl
index 2dbfaea..25db3d4 100644
--- a/src/ioq_osq.erl
+++ b/src/ioq_osq.erl
@@ -42,7 +42,8 @@
 
 
 call(Pid, Msg, Priority) ->
-    Reply = gen_server:call(ioq_osq, {rlimit, nil, Priority, now()}, infinity),
+    Now = erlang:monotonic_time(),
+    Reply = gen_server:call(ioq_osq, {rlimit, nil, Priority, Now}, infinity),
     try
         gen_server:call(Pid, Msg, infinity)
     after
@@ -230,7 +231,9 @@
 
 record_stats(Channel, Pri, T0) ->
     IOClass = if is_tuple(Pri) -> element(1, Pri); true -> Pri end,
-    Latency = timer:now_diff(now(),T0) / 1000,
+    Now = erlang:monotonic_time(),
+    Latency = erlang:convert_time_unit(
+        Now - T0, native, millisecond),
     catch couch_stats:increment_counter([couchdb, io_queue, IOClass]),
     catch couch_stats:increment_counter([couchdb, io_queue, osproc]),
     catch couch_stats:update_histogram([couchdb, io_queue, latency], Latency),
diff --git a/src/ioq_server.erl b/src/ioq_server.erl
index 8e0891d..e33c2fc 100644
--- a/src/ioq_server.erl
+++ b/src/ioq_server.erl
@@ -67,7 +67,7 @@
         msg = Msg,
         channel = Channel,
         class = Class,
-        t0 = now()
+        t0 = erlang:monotonic_time()
     },
     case config:get("ioq.bypass", atom_to_list(Class)) of
         "true" ->
@@ -145,7 +145,7 @@
 handle_info({Ref, Reply}, #state{reqs = Reqs} = State) ->
     case lists:keytake(Ref, #request.ref, Reqs) of
     {value, #request{from=From} = Req, Reqs2} ->
-        TResponse = erlang:now(),
+        TResponse = erlang:monotonic_time(),
         erlang:demonitor(Ref, [flush]),
         reply_to_all(From, Reply),
         update_histograms(ioq_histos, Req, TResponse),
@@ -419,8 +419,8 @@
 
     % record some stats
     RW = rw(Call),
-    SubmitTime = now(),
-    Latency = timer:now_diff(SubmitTime, T0) / 1000,
+    SubmitTime = erlang:monotonic_time(),
+    Latency = erlang:convert_time_unit(SubmitTime - T0, native, millisecond),
     catch couch_stats:increment_counter([couchdb, io_queue, IOClass]),
     catch couch_stats:increment_counter([couchdb, io_queue, RW]),
     catch couch_stats:update_histogram([couchdb, io_queue, latency], Latency),
@@ -432,8 +432,10 @@
 
 update_histograms(Tab, Req, TResponse) ->
     #request{t0=T0, tsub=TSubmit, class=Class, channel=Channel, msg=Msg} = Req,
-    Delta1 = timer:now_diff(TSubmit, T0),
-    Delta2 = timer:now_diff(TResponse, TSubmit),
+    Delta1 = erlang:convert_time_unit(
+        TSubmit - T0, native, microsecond),
+    Delta2 = erlang:convert_time_unit(
+        TResponse - TSubmit, native, microsecond),
     Bin1 = timebin(Delta1),
     Bin2 = timebin(Delta2),
     Bin3 = timebin(Delta1+Delta2),
@@ -478,7 +480,7 @@
 choose_next_request(Qs, Priorities) ->
     Norm = lists:sum(Priorities),
     QueuesAndPriorities = lists:zip(Qs, Priorities),
-    SortedQueues = sort_queues(QueuesAndPriorities, Norm, random:uniform()),
+    SortedQueues = sort_queues(QueuesAndPriorities, Norm, rand:uniform()),
     {Item, NewQueues} = choose_prioritized_request(SortedQueues),
     Map0 = lists:zip(SortedQueues, NewQueues),
     {Item, [element(2, lists:keyfind(Q, 1, Map0)) || Q <- Qs]}.
diff --git a/src/ioq_server2.erl b/src/ioq_server2.erl
index 5e2e01f..dadd44d 100644
--- a/src/ioq_server2.erl
+++ b/src/ioq_server2.erl
@@ -112,8 +112,7 @@
                 "ioq2", "dispatch_strategy", ?DISPATCH_SERVER_PER_SCHEDULER),
             Server = case DispatchStrategy of
                 ?DISPATCH_RANDOM ->
-                    maybe_seed(),
-                    SID = random:uniform(erlang:system_info(schedulers)),
+                    SID = rand:uniform(erlang:system_info(schedulers)),
                     ?SERVER_ID(SID);
                 ?DISPATCH_FD_HASH ->
                     NumSchedulers = erlang:system_info(schedulers),
@@ -601,19 +600,6 @@
     end.
 
 
--spec maybe_seed() -> {integer(), integer(), integer()}.
-maybe_seed() ->
-    case get(random_seed) of
-        undefined ->
-            <<A:32, B:32, C:32>> = crypto:strong_rand_bytes(12),
-            Seed = {A, B, C},
-            random:seed(Seed),
-            Seed;
-        Seed ->
-            Seed
-    end.
-
-
 %% ioq_server2 Tests
 
 
@@ -954,7 +940,7 @@
     ),
     FakeServer = fun(F) ->
         receive {'$gen_call', {Pid, Ref}, Call} ->
-            timer:sleep(random:uniform(RespDelay)),
+            timer:sleep(rand:uniform(RespDelay)),
             Pid ! {Ref, {reply, Call}}
         end,
         F(F)
@@ -1042,7 +1028,7 @@
 
 
 random_server(Servers) ->
-    lists:nth(random:uniform(length(Servers)), Servers).
+    lists:nth(rand:uniform(length(Servers)), Servers).
 
 
 test_io_error(#state{waiters=Waiters, reqs=Reqs}=State) ->
