记一次网速不佳的排查过程

2019-08-14
阅读 1 分钟
1.6k
网速不佳的常见情况, 包括以下几种: 路由器质量差, 处理芯片差/过热/天线信号差等, 都会导致数据传输会变慢 运营商实体网线有问题, 最坑最不好排查的情况, 曾经碰到过出户网线部分断裂的情况 运营商服务问题, 包括骨干网短时不可用, DNS响应慢, http劫持等 运营商本身口碑极差, 比如宽带通这种 本地全局代理忘了关闭, 导...

Linux进程/线程的相关概念梳理

2019-05-04
阅读 2 分钟
3.8k
Linux的线程模型 自Linux诞生以来有三种 LinuxThreads, 最早的模型, 只部分实现POSIX Threads标准 NGPT, Next Generation POSIX Threads, 已终止 NPTL, Native POSIX Thread Library, 从2.6内核以来到现在所使用的模型 在NPTL中, Linux使用的用户线程与内核线程1:1内应的线程模型, 这也是众多其它系统, win32, Solaris, ...

分布式理论与场景浅谈

2019-03-08
阅读 2 分钟
1.6k
FLP不可能原理在异步模型中,分布式系统中只要有一个进程不可用,就可能无法达成整体的共识.在工程中的分布式系统实现中, 通过解决活锁等问题, 来使系统在一定时间内可以达到一致性.

ImmutableMap不可使用null的问题

2018-09-29
阅读 1 分钟
9.6k
实际运行时偶尔出现npe错误, 原因在于orderId对应的值为null, 而ImmutableMap的key和value均不可为null值.

IO/内存/文件系统-Ⅱ

2018-08-09
阅读 1 分钟
2.2k
tmpfs, 是一种基于内存的文件系统, 使用虚拟内存(VM); 可使用RAM, 也可使用swap分区.因此它有两个优点, 一是速度快, 二是可动态分配虚拟所占空间大小, 按需变更.

IO/内存/文件系统

2018-08-02
阅读 3 分钟
4.2k
linux io协议栈 裸设备读写 数据库公认最快的IO方式是读写裸设备,Oracle数据库一般将日志和数据全部存放到裸设备上. 什么是裸设备 在Unix/Linux, 文件分为两个大类:字符设备文件和块设备文件. 裸设备是一种没有经过格式化,不被Unix通过文件系统来读取的特殊块设备文件, 也叫裸分区(原始分区), 通过字符设备驱动读写裸...

java中的hashCode

2018-04-21
阅读 4 分钟
2.6k
具体的实现根据jvm的实现可能会不同. JDK1.8中实际计算hashcode的get_next_hash函数的实现如下(src/share/vm/runtime/synchronizer.cpp)

java语法及运行时错误记录

2018-02-23
阅读 2 分钟
7.2k
case语句中只能写枚举类定义的枚举值, 前面不能带类名限定, 在switch中已经确定了枚举的类型.如果有两个枚举中都有同一个变量(比如GREEN)的话, 则无法确定判断的先后顺序.

Intellij使用总结

2017-02-16
阅读 2 分钟
4.5k
选择file -> Invalide Caches/Restart, 验证缓存和重建索引, 但时间会比较长如果没有用, 参考Intellij存储数据使用的文件夹, 把缓存文件夹删掉再试一次

对写博客的一点感想

2017-01-15
阅读 1 分钟
1.8k
最近博客更新得少, 并不是没有想写的东西, 只是有些坑比较深(比如数据库锁), 最近也比较忙, 没时间系统整理资料, 其实存了不少东西, 有机会认真写写.

iptables实现流量中转

2016-12-25
阅读 1 分钟
11.4k
为什么: 因为有时直连就是很慢, 中转就是很快, 天朝的网络状况错综复杂用处: 你有多个vps的时候, 可以互相中继, 突破某些网站的ip地域限制

maven学习

2016-10-16
阅读 2 分钟
2.5k
Maven坐标定义了一组标识,它们可以用来唯一标识一个项目,一个依赖,或者Maven POM里的一个插件。groupId, artifactId, version和packaging的组合代表一个坐标, maven通过坐标来精确定位一个项目.

java学习笔记

2016-09-06
阅读 2 分钟
1.8k
static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法. 在程序的执行过程中,static{}语句块中的内容只被执行一次

java证明ArrayList和HashMap的非线程安全性

2016-09-06
阅读 3 分钟
4.1k
众所周知, 这两个结构都不是线程安全的.对于ArrayList, 可以通过多个线程向其添加元素, 若它不是线程安全的, 则最后它实际存储的元素数量很可能不等于实际添加的元素数量.HashMap的验证方法也类似

python的解释器级别对象的实现方法

2016-07-29
阅读 3 分钟
2.8k
最近在重构项目代码, 有个需求是需要声明一个变量, 然后任何import了这个变量的模块, 当这个变量在其它地方更改了值以后, 这个变化都能反映出来, 乍看好像有点麻烦, 其实很简单.

新云主机的配置

2016-07-10
阅读 2 分钟
2.3k
目标很简单, 不被黑就行, 否则成了别人肉鸡太囧了 说明 主机: vultr日本系统: Ubuntu12.04 64bit 首先登陆到主机上, 最开始的用户名是root, 登陆后首先就是安装vim, 这样方便后续操作 {代码...} 更改默认的ssh端口, 关闭root登陆 {代码...} 将Port的数字修改为任意的5位数字找到PermitRootLogin, 修改为no 重启 {代码......

ipython启动时自动引入部分模块

2016-06-12
阅读 1 分钟
4k
在~/.ipython/profile_default/startup/下编写一个脚本, 命名可以随意, 如start.py, 在里面引入一些常用的包, 这样ipython每次启动时都会自动引入, 不用等需要的时候手动引入

tornado异步的mock以及装饰器

2016-06-05
阅读 3 分钟
4.1k
给上面的FooHandler加装饰器(放在coroutine上面), 这种一般的使用场景就是加缓存或者计时之类...因为异步的里面是个generator, 所以最里面包的一层还是要加coroutine并且用gen返回

守护进程, 孤儿进程, 僵尸进程与waitpid

2016-05-16
阅读 4 分钟
6k
创建子进程, 父进程退出父进程先于子进程退出会造成子进程成为孤儿进程,而每当系统发现一个孤儿进程时,就会自动由1号进程(init)收养它,这样,原先的子进程就会变成init进程的子进程

os x下网络与系统相关命令

2016-03-09
阅读 1 分钟
2.7k
os x下netstat不是十分好使,可以显示端口的进程号,但不能显示是具体哪个程序比如想要显示有哪些端口在Listen {代码...} 结果 用lsof可以看到具体的程序名 {代码...} 如果想知道某端口是否在监听, 最好使用telnet, 因为lsof对于没有权限的端口返回的结果是空 查看TCP连接 {代码...} 查看ipv6协议的TCP连接 {代码...} 查...

改用pypy运行django项目

2016-03-01
阅读 2 分钟
7k
最近在研究socket编程,写了个echo server,试了试pypy,比用python2.7流量大了好几倍,简直吓死宝宝了。本地跑网络相关的程序基本没有拥塞,所以主要就相当于测试CPU了,感觉主要是节省了线程和循环开销,可能是pypy的某种优化吧

关于socket编程

2016-02-21
阅读 2 分钟
3.4k
linux/unix下读写socket时可能发生EAGAIN错误,比如在非阻塞(non-block)的情况下,客户端给服务器发送了一个空字符,事件接收到消息连接会让服务器会去读,但是没有数据可读,会发生错误:

python tips(2)

2016-01-21
阅读 2 分钟
2.2k
一般的字符串组合操作都建议使用join, 字符串操作经常使用的就join, split, replace, 另外还有partitionjoin里面可以写成一个列表解析的形式

python单例模式与metaclass

2016-01-09
阅读 4 分钟
9.3k
单例模式的实现方式 将类实例绑定到类变量上 {代码...} 但是子类在继承后可以重写__new__以失去单例特性 {代码...} 使用装饰器实现 {代码...} 问题是这样装饰以后返回的不是类而是函数,当然你可以singleton里定义一个类来解决问题,但这样就显得很麻烦了 使用__metaclass__,这个方式最推荐 {代码...} metaclass 元类就...

python函数和类的一些研究

2016-01-07
阅读 4 分钟
6.4k
bound与unbound 通常认为实例方法是bound的,而类方法是unbound的,这种说法也没错,只是对于不同类型变量来说,结果是不同的 {代码...} 测试一下, 结果显示的都是bound method {代码...} 直接从类访问,结果fs这个实例方法显示的是unbound。可以知道bound的意义并不是始终不变的,对于不同的对象来说意义并不一样。 {代...

python装饰器和描述器的使用总结

2016-01-02
阅读 4 分钟
8.1k
被某些中文教程坑过,我的建议是有问题看官方文档,即使没有很详细的例子,至少不坑 装饰器 毫无疑问在python中用得非常多 {代码...} 在f上加deco装饰器相当于f = deco(f), 和functools.partial有些类似 如果被装饰的函数f带参数且有返回值 {代码...} 如果装饰器带有参数,需要多包一层,把参数调用包进去 {代码...} 只...

python socket笔记

2015-12-28
阅读 2 分钟
5.1k
只用于tcp,listen的原型是def listen(self, backlog),backlog一般默认为5,但是可以人为调整,一些web服务器都会高于此值。listen做两件事:

使用expect自动登录

2015-12-25
阅读 1 分钟
2.4k
expect是一个会话程序,根据内容反馈来做出应答,python也有一个相关库pexpect。用它进行自动登录,不是用authorized_key,而是把用户名密码写死在脚本里,来实现自动登录,毕竟总去上传key也不现实。

django根据不同git分支加载不同配置

2015-12-22
阅读 1 分钟
2.5k
配置文件如通常一样是两份,一份settings.py作为基准,另外一份settings_local.py用来覆盖。后面一个文件是没有track的,可以随便改。

python模拟登录segmentfault及备份文章(续)

2015-12-22
阅读 2 分钟
3.2k
上一篇用requests模拟请求,最后没有拿到cookies。今天偶尔看一篇HTTP相关的文章,发现在某些请求返回的header中会有set-cookie字段,很明显之前的失败应该是没有接收到包含这个字段的response。自己尝试人肉登录发现,cookie中的sf_remember字段是登录成功后跳转到首页时进行set-cookie的,而不是post的时候设置的。所...