08 2016 档案

摘要:以前数据库事物和多线程同步的概念柔和在一起,以为相互关联,实则没有必然联系。 数据库事物解决的数据一致性:假设数据从一个状态迁移到一个状态,涉及到俩个对象,如果没有数据库事物,当某一对象操作完成之后数据库出错(或者操作过程中有人查看了备操作的对象),数据库将出现不一致的状态。数据库事物的执行具有原子 阅读全文
posted @ 2016-08-31 10:44 彭玉松 阅读(1145) 评论(0) 推荐(0)
摘要:最近使用flask-sqlalchemy时,进行测试的时候发现日志中打印出了MySql死锁错误,查看Mysql日志发现是因为有俩条sql出现了死锁: Deadlock found when trying to get lock; try restarting transaction 查看方法是执行: 阅读全文
posted @ 2016-08-27 15:51 彭玉松 阅读(817) 评论(0) 推荐(0)
摘要:Select 系统调用: select 轮询监听多个文件描述符的数组,其原理如下(转自:这里): 从用户空间拷贝fd_set到内核空间;注册回调函数__pollwait;遍历所有fd,对全部指定设备做一次poll(这里的poll是一个文件操作,它有两个参数,一个是文件fd本身,一个是当设备尚未就绪时 阅读全文
posted @ 2016-08-27 11:32 彭玉松 阅读(746) 评论(0) 推荐(0)
摘要:以前对于Requests库只是简单是使用,在现在公司的后台中,有多个接口是直接使用requests.get .post之类的方法来做的,进行过一段时间的压力测试,发现性能低的可怜,且linux服务器有好多CLOSE_WAIT状态,所以这个问题不解决是没办法上线的。 解决办法参考以下方法(下文附连接) 阅读全文
posted @ 2016-08-25 10:17 彭玉松 阅读(3262) 评论(0) 推荐(0)
摘要:转译自:https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/ Requests' secret: pool_connections and pool_maxsize Requests 是一个pyt 阅读全文
posted @ 2016-08-24 14:47 彭玉松 阅读(8906) 评论(0) 推荐(1)
摘要:sqlalchemy数据库连接池的使用方式是延迟初始化,就是说一开始你调用create_engine(...)后创建的那个数据库池是空的,你后面通过session.connection()或者engine.connect()才开始创建连接, 每当你创建一个连接,你调用engine.pool.stat 阅读全文
posted @ 2016-08-20 17:40 彭玉松 阅读(6794) 评论(0) 推荐(1)
摘要:1. 三次握手: 服务器一定处于Listen状态,否则客户端发过来的连接会被拒绝。注:服务器和客户端的角色是相对的。 客户端发送第一次握手(客户端发送连接请求(SYNC包)到服务器)之后由Closed状态转为Sync-Send状态; 服务器收到第一次握手的客户端SYNC包,然后发送第二次握手(服务器 阅读全文
posted @ 2016-08-17 18:05 彭玉松 阅读(3780) 评论(0) 推荐(0)
摘要:http 和 http-socket的使用上有一些区别: http: 自己会产生一个http进程(可以认为与nginx同一层)负责路由http请求给worker, http进程和worker之间使用的是uwsgi协议 http-socket: 不会产生http进程, 一般用于在前端webserver 阅读全文
posted @ 2016-08-17 15:37 彭玉松 阅读(5287) 评论(0) 推荐(0)
摘要:写了一个函数,这个函数接收一个参数,在函数里面判断这个参数是否为None或者不合法状态, 如果处于不合法状态,则创建一个对象返回, 如果合法直接返回 代码示例如下: 调用的时候使用如下方式调用: 本以为这样传入self._mq_conn对象会对象的引用会指向新创建的对象,然后就可以继续使用self. 阅读全文
posted @ 2016-08-16 16:19 彭玉松 阅读(1458) 评论(0) 推荐(0)
摘要:如有不对,请详细指正。 最近再研究uwsgi如何部署python app,看uwsgi的文档,里面有太多的参数,但每个参数的解释太苍白,作为菜鸟的我实在是不懂。想搞清楚uwsgi的工作原因以及里面的一些参数的意义,只能通过英文的文档和源码来入手,虽然慢,但是理解更深刻。 本文根据代码阅读以及参照多种 阅读全文
posted @ 2016-08-13 13:59 彭玉松 阅读(11567) 评论(0) 推荐(0)
摘要:uwsgi在同一台linux上启动python flask web app(俩个), 发现第一个和第二个的简单性能测试差距非常大,差了将近一倍: 第一个结果: Concurrency Level: 1000Time taken for tests: 12.581 secondsComplete re 阅读全文
posted @ 2016-08-10 17:34 彭玉松 阅读(800) 评论(0) 推荐(1)
摘要:uwsgi参数设置问题 listen 参数设置过小导致并发上不去 更改listen参数, 请先确认linux系统的上限(tcp_max_syn_backlog,somaxconn)。 TCP网络状态的问题: /var/log/messages 出现TIME_WAIT过多的警告, 并发上不去 CLOS 阅读全文
posted @ 2016-08-10 11:40 彭玉松 阅读(214) 评论(0) 推荐(0)
摘要:英文原版: http://uwsgi-docs.readthedocs.io/en/latest/Options.html 转载地址: http://www.cnblogs.com/zhouej/archive/2012/03/25/2379646.html uWSGI参考资料(1.0版本的配置选项 阅读全文
posted @ 2016-08-08 18:55 彭玉松 阅读(541) 评论(0) 推荐(0)
摘要:1. 查看网络状态分布 #!/bin/sh netstat -apn 2>/dev/null | grep 5600 \ | awk 'BEGIN {printf("%-15s%-15s%-15s%-15s\n", "State", "Recv-Q", "Send-Q", "Count")} \ / 阅读全文
posted @ 2016-08-08 18:49 彭玉松 阅读(271) 评论(0) 推荐(0)
摘要:centos 6.x 内核版本2.6.32以上,修改/etc/security/limits.d/90-nproc.conf:因为系统是先读/etc/security/limits.conf的值,在用/etc/security/limits.d/90-nproc.conf去覆盖,所以,仅仅更改/et 阅读全文
posted @ 2016-08-06 17:22 彭玉松 阅读(1916) 评论(0) 推荐(0)
摘要:使用如下参数可避免-s timeout Seconds to max. wait for each response Default is 30 seconds -k Use HTTP KeepAlive feature 阅读全文
posted @ 2016-08-05 14:37 彭玉松 阅读(3486) 评论(0) 推荐(0)
摘要:解释如下: Percentage of the requests served within a certain time (ms) 表示小于某一时间的请求数在全过程中的占比 update 2016年8月10日 16:55:23 Connection Times:下面这里说的靠谱: http://s 阅读全文
posted @ 2016-08-05 10:46 彭玉松 阅读(1079) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/coldplayerest/archive/2012/06/28/2567656.html 1. 计算网络的QPS时,必须要指定并发度,否则没有意义。 2. 等式关系: QPS = 并发度 / 用户平均等待时间 QPS = 1 / 服务器平均请求处 阅读全文
posted @ 2016-08-05 10:03 彭玉松 阅读(1196) 评论(0) 推荐(0)
摘要:今天在用Apache自带的ab工具做以下简单的压测,本来是随便填几个参数,发现ab在1000并发以上报错:apr_socket_recv "connection reset by peer" 104 我用的是当前最新版本编译的,Apache 2.4.23 出了这样的问题,作为小白的我直接谷歌,然后百 阅读全文
posted @ 2016-08-04 18:52 彭玉松 阅读(10124) 评论(0) 推荐(1)