Python SocketIO 服务器性能迅速下降

时间:2021-03-02 07:59:50

标签: python gunicorn eventlet python-socketio

我有一个运行 python-socketIO 的简单 Python 3 应用程序。我使用它以每秒 30 次的频率将近 400 000 个值的列表流式传输到客户端应用程序。我采用了压缩技术,将网络带宽降低到更易于管理的水平。

测试应用程序运行良好,但其性能下降得非常快。两个客户端连接时,帧率接近20。4-5个客户端时,帧率小于10。

为什么应用程序的性能下降如此之快,如何解决?

我使用这个命令来启动服务器。

gunicorn -k eventlet -w 1 --reload server:app

这是我的代码

#IMPORTS 
import socketio
import driver as customData
import threading
import lz4.frame

#SERVER SETUP
sio = socketio.Server()
app = socketio.WSGIApp(sio, static_files={
     '/':'./clientView/'
})

#VARIABLE SETUP
stream  = False

#FUNCTION DEFINITIONS

def stream_Data():
    global stream
    while stream == True:
        sio.emit('dataStream', lz4.frame.compress(customData.stream_Raw(), 9))

def startStream():
    global stream
    if stream == True:
        print('Stream Requested: Already in Progress...')
    elif stream == False:
        print('Stream Initialized...')
        stream = True
        STREAM_THREAD.start()
        

#THREAD SETUP
STREAM_THREAD = threading.Thread(target = stream_Data)

#SOCKET EVENTS
@sio.event
def connect(sid, environ):
    print(sid, 'connected')

@sio.event
def disconnect(sid):
    print(sid, 'disconnected')

@sio.event
def streamEvent(sid, data):
    global stream

    if data == 'stream':
        startStream()
        stream = True

    if data == 'stop_Stream':
        stream = False
    


0 个答案:

没有答案