django高并发

 

配置文件和项目文件在同一级,不能将配置文件放进项目中

#uwsgi使用配置文件启动

[uwsgi]

#项目目录

chdir=/home/zhouweiwei/myproject/realTime/ECG_App

#指定项目的application

module=ECG_App.wsgi:application

#指定sock的文件路径

socket=/home/zhouweiwei/myproject/realTime/script/uwsgi.sock

#进程个数

workers=5

pidfile=/home/zhouweiwei/myproject/realTime/script/uwsgi.pid

#指定IP端口

http=0.0.0.0:8080

#指定静态文件

stati-map=/static=/home/zhouweiwei/myproject/realTime/ECG_App/static

#启动uwsgi的用户和用户组

;uid=root

;git=root

#启用主进程

master=true

#自动移除unix socket和pid文件当服务停止的时候

vacuum=true

#序列化接收的内容,

thunder-lock=true

#设置自中断时间

harakiri= 60

#设置缓冲

post-buffering=32768

#设置日志目录

daemonize=/home/zhouweiwei/myproject/realTime/script/uwsgi.log

 

 

2,启动需要的命令:

../../venv/bin/uwsgi --ini uwsgi.ini 使用的是venv中的uwsgi命令

3,查看日志的内容:使用less uwsgi.log

4,监控日志

tail -f *.log

 

5,出现的问题:

每个进程在开始的时候依次加载文件,使得开启的所有的近程都处于开启状态,这样在访问的时候,uwsgi就可以将访问分配到每个进程中,

但是:

如果显存不够分配,在运行的时候就会有进程被kill掉,这样就造成进程又要重新分配。

注意的参数:显卡的占用情况,进程的id,

 

 

6,使用requests进行压力测试,要使用Process写一个多线程的循环,这样就可以实现多线程访问了

for i in range(100):

request_data = real_time_data_list[0]

real_time_data = request_data.decode('utf-8')

files = {'data_id': '1', 'real_data': real_time_data}

start_time = time.time()

task_process = Process(target=requests_send,args=(url,files)) #这里是关键

task_process.start()

time_sum[0] = time_sum[-1]+time.time()-start_time

profile_tool.endStat('计时')

 

 

7,多个进程不能对同一个文件进行读写,每一个进程是不同的实例,各个实例之间不能相互干扰。

 

8,多线程:

threads = []

def mul_threads(url):

data_list = os.listdir(path2)

for i in range(100):

request_data = readFile2(path2+ data_list[i])

real_time_data = request_data.decode('utf-8')

files = {'data_id': data_list[i], 'real_data': real_time_data}

t1 = threading.Thread(target=requests_send,args=(url,files,i)) #这个是关键

threads.append(t1)

 

#多线程

mul_threads(url)

print('len(threads)===========', len(threads))

start_time = time.time()

for t in threads:

t.setDaemon(True)

t.start()

t.join()

print('总共的时间==============',time.time()-start_time)

print('所有线程结束')

 

你可能感兴趣的:(django高并发)