【问题现象】 项目遗留问题:项目一般用redis作为缓存,并发量突增时很容易出现TCP连接失败(无可用端口) 【问题分析】 根据错误日志,排查出是连接数达到了最大值,(其实通过 netstat -anp|grep TIME_WAIT|wc -l也可以初略统计出当前的连接数),导致redis缓存无法使 ...
分类:
其他好文 时间:
2018-09-25 14:05:42
阅读次数:
1023
互斥锁 条件变量: pthread_cond_wait必须放在pthread_mutex_lock和pthread_mutex_unlock之间,因为他要根据共享变量的状态来觉得是否要等待,而为了不永远等待下去所以必须要在lock/unlock队中 pthread_cond_signal通常唤醒等在 ...
分类:
其他好文 时间:
2018-09-25 01:25:09
阅读次数:
178
限制用户一分钟只能访问3次from rest_framework.throttling import BaseThrottle import time ''' 11:19:40 VISIT_RECORD={ "127.0.0.1":[11:19:20,11:19:10,11:19:00] # 最近三... ...
分类:
其他好文 时间:
2018-09-24 21:12:40
阅读次数:
161
协程(Coroutine)的概念存在于很多编程语言,例如Lua、ruby等。而由于Unity3D是单线程的,因此它同样实现了协程机制来实现一些类似于多线程的功能,但是要明确一点协程不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。 协程类型IEnumerator 在内部方法使用 ...
分类:
编程语言 时间:
2018-09-23 00:17:23
阅读次数:
180
连接的超时时间 set global interactive_timeout=120;set global wait_timeout=120; 该连接指类似应用访问数据库的连接,可以查询、DML、DDL等 测试一:超时后,DML事务断开,相当于事务提交失败,原数据无数据 注意:超时后会出现,下面的信 ...
分类:
数据库 时间:
2018-09-22 23:21:06
阅读次数:
247
示例代码可以从github上获取 https://github.com/git-simm/simm-framework.git 一、业务场景: 系统中存在一个盘库的功能,用户一次盘库形成一两万条的盘库明细单,一次性提交给服务器进行处理。服务器性能比较优越,平均也得运行30秒左右。性能上需要进行优化。 ...
分类:
其他好文 时间:
2018-09-22 21:17:23
阅读次数:
215
系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互,在这种情况下,使用线程池可以很好地提高性能。 线程池的模式很像生产者消费者模式,消费的对象是一个一个的能够运行的任务。 线程池设计思路 1、准备一个任务容器。 2、一次性启动10个消费者线程。 3、刚开始任务容器是空的,所以线程都wait ...
分类:
编程语言 时间:
2018-09-22 17:00:16
阅读次数:
147
1. 功能:创建以个等待队列头 2. 函数原型 #define DECLARE_WAIT_QUEUE_HEAD (name) / wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name) #define __WAIT_QUEUE_HEA ...
分类:
系统相关 时间:
2018-09-22 16:53:59
阅读次数:
703
pthread_cond_signal,pthread_cond_wait,使用方法介绍 ...
分类:
系统相关 时间:
2018-09-22 12:41:01
阅读次数:
188
1、优化内核及TCP连接: fs.file max = 655350 系统文件描述符总量 net.ipv4.ip_local_port_range = 1024 65535 打开端口范围 net.ipv4.tcp_max_tw_buckets = 2000 设置tcp连接时TIME_WAIT个数 n ...
分类:
其他好文 时间:
2018-09-22 12:26:11
阅读次数:
233