diff --git a/clients/client-linux.py b/clients/client-linux.py
index f310968..740190c 100755
--- a/clients/client-linux.py
+++ b/clients/client-linux.py
@@ -3,7 +3,7 @@
 # Update by : https://github.com/cppla/ServerStatus
 # 支持Python版本:2.7 to 3.7
 # 支持操作系统: Linux, OSX, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
-# 时间: 20200401
+# 时间: 20200407
 # 说明: 默认情况下修改server和user就可以了。丢包率监测方向可以自定义,例如:CU = "www.facebook.com"。
 
 SERVER = "127.0.0.1"
@@ -31,12 +31,9 @@ import collections
 import threading
 
 def get_uptime():
-    f = open('/proc/uptime', 'r')
-    uptime = f.readline()
-    f.close()
-    uptime = uptime.split('.', 2)
-    time = int(uptime[0])
-    return int(time)
+    with open('/proc/uptime', 'r') as f:
+        uptime = f.readline().split('.', 2)
+        return int(uptime[0])
 
 def get_memory():
     re_parser = re.compile(r'^(?P<key>\S*):\s*(?P<value>\d*)\s*kB')
@@ -61,12 +58,11 @@ def get_hdd():
     return int(size), int(used)
 
 def get_time():
-    stat_file = open("/proc/stat", "r")
-    time_list = stat_file.readline().split(' ')[2:6]
-    stat_file.close()
-    for i in range(len(time_list))  :
-        time_list[i] = int(time_list[i])
-    return time_list
+    with open("/proc/stat", "r") as f:
+        time_list = f.readline().split(' ')[2:6]
+        for i in range(len(time_list))  :
+            time_list[i] = int(time_list[i])
+        return time_list
 
 def delta_time():
     x = get_time()
@@ -84,10 +80,23 @@ def get_cpu():
     result = 100-(t[len(t)-1]*100.00/st)
     return round(result, 1)
 
+traffic_clock = time.time()
+traffic_diff = 0
+def TCLOCK(func):
+    def wrapper(*args, **kwargs):
+        global traffic_clock, traffic_diff
+        now_clock = time.time()
+        traffic_diff = now_clock - traffic_clock
+        traffic_clock = now_clock
+        return func(*args, **kwargs)
+    return wrapper
+
 class Traffic:
     def __init__(self):
         self.rx = collections.deque(maxlen=10)
         self.tx = collections.deque(maxlen=10)
+
+    @TCLOCK
     def get(self):
         f = open('/proc/net/dev', 'r')
         net_dev = f.readlines()
@@ -114,8 +123,8 @@ class Traffic:
             avgrx += self.rx[x+1] - self.rx[x]
             avgtx += self.tx[x+1] - self.tx[x]
 
-        avgrx = int(avgrx / l / INTERVAL)
-        avgtx = int(avgtx / l / INTERVAL)
+        avgrx = int(avgrx / l / traffic_diff)
+        avgtx = int(avgtx / l / traffic_diff)
 
         return avgrx, avgtx
 
@@ -278,7 +287,7 @@ if __name__ == '__main__':
             INTERVAL = int(argc.split('INTERVAL=')[-1])
     socket.setdefaulttimeout(30)
     get_packetLostRate()
-    while 1:
+    while True:
         try:
             print("Connecting...")
             s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -310,7 +319,7 @@ if __name__ == '__main__':
 
             traffic = Traffic()
             traffic.get()
-            while 1:
+            while True:
                 CPU = get_cpu()
                 NetRx, NetTx = traffic.get()
                 NET_IN, NET_OUT = liuliang()
diff --git a/clients/client-psutil.py b/clients/client-psutil.py
index e865122..c53b24c 100755
--- a/clients/client-psutil.py
+++ b/clients/client-psutil.py
@@ -4,7 +4,7 @@
 # 依赖于psutil跨平台库
 # 支持Python版本:2.7 to 3.7
 # 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
-# 时间: 20200401
+# 时间: 20200407
 # 说明: 默认情况下修改server和user就可以了。丢包率监测方向可以自定义,例如:CU = "www.facebook.com"。
 
 SERVER = "127.0.0.1"
@@ -58,10 +58,23 @@ def get_hdd():
 def get_cpu():
     return psutil.cpu_percent(interval=INTERVAL)
 
+traffic_clock = time.time()
+traffic_diff = 0
+def TCLOCK(func):
+    def wrapper(*args, **kwargs):
+        global traffic_clock, traffic_diff
+        now_clock = time.time()
+        traffic_diff = now_clock - traffic_clock
+        traffic_clock = now_clock
+        return func(*args, **kwargs)
+    return wrapper
+
 class Traffic:
     def __init__(self):
         self.rx = collections.deque(maxlen=10)
         self.tx = collections.deque(maxlen=10)
+
+    @TCLOCK
     def get(self):
         avgrx = 0; avgtx = 0
         for name, stats in psutil.net_io_counters(pernic=True).items():
@@ -82,8 +95,8 @@ class Traffic:
             avgrx += self.rx[x+1] - self.rx[x]
             avgtx += self.tx[x+1] - self.tx[x]
 
-        avgrx = int(avgrx / l / INTERVAL)
-        avgtx = int(avgtx / l / INTERVAL)
+        avgrx = int(avgrx / l / traffic_diff)
+        avgtx = int(avgtx / l / traffic_diff)
 
         return avgrx, avgtx