刘博平的博客

一个软件工程师

几步找出ss科学上网速度慢的原因

第一步 测试丢包率

ping 你的VPS IP,丢包率低于10%,问题都不大,高于30%,就需要确定问题出在你的网络问题还是VPS的问题。

先测试你的网络

https://www.vultr.com/faq/#downloadspeedtests

这是全世界各个地区下载节点,专门测试从这个节点下载文件到你的电脑,用浏览器单线程下载,别用迅雷之类的。

如果所有节点下载都慢,当然是你的网络的问题,你用的极有可能是长城宽带之类的垃圾网络,联通、移动出的不限流量的4G卡,也比这玩意强。

排除上面的可能,就只能是VPS的问题了,很多VPS很便宜,超低价,年付,吸引了大量的人,造成服务器网络拥堵,平时网络速度还行,到了晚上高峰,丢包率立刻就上来了,再穷不能穷教育。

建议用Vultr,全球几十个节点,按小时付费,遇到网络问题,立刻换节点、换IP。

不丢包了,就开始下一步优化。

第二步 服务器端安装BBR内核

参考:http://www.liuboping.com/2018-05-22/%E5%BC%80%E5%90%AFtcp-bbr%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95

第三步 优化酸酸乳配置

上面两步基本就可以搞定,这里针对的是酸酸乳的用户。

酸酸乳地址:https://github.com/shadowsocksr-backup/

重点说说配置,之前用auth_chain_b,但是发现有被封IP的现象,于是改用config.json中的默认配置。

1
2
3
4
"method": "aes-128-ctr",
"protocol": "auth_aes128_md5",
"obfs": "http_post",
"obfs_param": "www.xinhuanet.com#User-Agent: Mozilla/5.0 (Linux; U; Android 6.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.2 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.2 MicroMessenger/6.5.255\nAccept: text/html\nConnection: keep-alive",

总结

上面三板斧优化下来,基本就可以跑满你的带宽了,上网如丝般顺滑,当然科学事业是无止境的,如有重大突破和更新,我会为大家守候,更新。

开启TCP BBR拥塞控制算法

原文来自:https://github.com/iMeiji/shadowsocks_install/wiki/%E5%BC%80%E5%90%AFTCP-BBR%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95

BBR 目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 效果并不比速锐差

Linux kernel 4.9+ 已支持 tcp_bbr 下面简单讲述基于KVM架构VPS如何开启

附:
OpenVZ 架构VPS开启BBR (容易导致判定滥用ban机,慎用!)

Debian/Ubuntu TCP BBR 魔改版 (不支持4.13.*及更新的内核)

Debian 8+ / Ubuntu 14

  • 下载最新内核,最新内核查看这里

    1
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.12/linux-image-4.14.12-041412-generic_4.14.12-041412.201801051649_amd64.deb
  • 安装内核

    1
    dpkg -i linux-image-4.*.deb
  • 删除旧内核(可选)

    1
    2
    dpkg -l | grep linux-image 
    apt-get purge 旧内核
  • 更新 grub 系统引导文件并重启

    1
    2
    update-grub
    reboot

Ubuntu 16.04

安装 Hardware Enablement Stack (HWE),自动更新内核

1
apt install --install-recommends linux-generic-hwe-16.04

  • 删除旧内核(可选)
    1
    apt autoremove

CentOS 6

  • 下载更换内核
    最新内核查看这里

    1
    2
    3
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功

    1
    rpm -qa | grep kernel
  • 删除旧内核(可选)

    1
    rpm -ev 旧内核
  • 更新 grub 系统引导文件并重启

    1
    2
    sed -i 's:default=.*:default=0:g' /etc/grub.conf
    reboot

开不了机的打开 vps 后台控制面板的 vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了

安装完成后不要忘记修改 /boot/grub/menu.lst 和 /etc/grub.conf,将这两个文件中旧内核的启动项删除即可避免无法重启的问题。

  • 更新到最新版内核
    1
    2
    yum --enablerepo=elrepo-kernel update -y 
    reboot

CentOS 7

  • 下载更换内核
    最新内核查看这里

    1
    2
    3
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功

    1
    rpm -qa | grep kernel
  • 删除旧内核(可选)

    1
    rpm -ev 旧内核
  • 更新 grub 系统引导文件并重启

    1
    2
    3
    egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    grub2-set-default 0 # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
    reboot
  • 注意,某些服务商(如 Digital Ocean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。

重新启动后,如果会出现 “read-only file system” 的错误,root账户下执行 mount -o remount rw / 即可

  • 更新到最新版内核

方法同 CentOS 6

开启bbr

开机后 uname -r 看看是不是内核 >= 4.9

执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行

1
2
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

执行

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效
sysctl -p

执行

1
2
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有 bbr, 则证明你的内核已开启 bbr

执行 lsmod | grep bbr, 看到有 tcp_bbr 模块即说明 bbr 已启动

分享经验-我是如何根治10年双侧鼻窦炎的

鼻炎吃什么药效果好
鼻炎怎么治疗效果好
鼻炎可以根治吗
鼻炎怎么办
鼻炎治疗

先给结论:

青霉素是治疗鼻炎的有效药

经历

8岁得双侧鼻窦炎,离不开卫生纸了,书桌里面塞满了擦过鼻涕的卫生纸。

尝试过很多治疗办法,中药,鼻腔清洗。
记得初一时,医生拿了一根很长的铁管,插入我的鼻腔,注入药物,进行清洗,有一定效果,稍有缓解。

直到初二时,我在家旁边的诊所,连续打了40天的青霉素,鼻子突然通气了。

后来,鼻炎还是有复发,我就买口服青霉素——阿莫西林,一次一粒,效果不明显,我就一次两粒,三天,鼻涕就开始减少,鼻子通气了,所以,我家里都会背上一盒阿莫西林。

购买

阿莫西林购买也非常简单,京东上就有,10元一盒。

千万注意,青霉素要先做皮试,看看是否过敏,不然可能有生命危险。

重要的事情说三遍:

口服青霉素前,一定要做青霉素皮试

口服青霉素前,一定要做青霉素皮试

口服青霉素前,一定要做青霉素皮试

测试结果告诉你DNS哪家强?

前言

目前DNS最突出的问题是劫持、安全,普通用户无法避免商业DNS偷窥、记录DNS查询,有点三元悖论的味道。

首先,上网得爽,不能打开个网页要等半天。
其次,也期望提高安全,尽量避免国内的一些运营商的劫持,稍微牺牲下速度,但是可以接受。

这就看个人的取舍了。

测试准备

  • 测试域名img.alicdn.com,这是阿里的图片CDN域名,淘宝的图片都在这个域名下,全国很多CDN节点非常具有代表性。
  • 测试所在网络北京移动
  • 测试结果IP的位置通过https://www.ipip.net/ip.html查询

期待最优结果:北京移动

当我打开淘宝时,会打开大量位于img.alicdn.com下的图片,DNS会告诉我去哪个服务器IP下载这个图片,由于CDN的存在,全国会有很多服务器,当然是最近的服务器最优了。

开始测试

dig @223.5.5.5 img.alicdn.com #183.203.23.212
dig @180.76.76.76 img.alicdn.com #111.13.140.183

百度的结果多个小尾巴caishikou.redirect. 3600 IN A 127.0.0.1

dig @114.114.114.114 img.alicdn.com #111.32.130.114
dig @117.50.11.11 img.alicdn.com #111.13.140.183
dig @208.67.222.222 +tcp -p 443 img.alicdn.com #23.66.41.95

DNS名称 DNS IP 域名解析结果 解析结果位置
移动DNS 路由器IP 111.13.140.183 北京移动
阿里DNS 223.5.5.5 183.203.23.212 山西移动
百度DNS 180.76.76.76 111.13.140.183 北京移动
114DNS 114.114.114.114 111.32.130.114 天津移动
OneDNS 117.50.11.11 111.13.140.183 北京移动
Google DNS-over-https 111.13.140.183 北京移动
openDNS 208.67.222.222 23.66.41.95 中国香港

测试总结

  • 移动DNS中规中矩
  • 阿里DNS很奇怪,自己的DNS,自己的CDN不应该指路到山西,难道是因为当前时间是周末,北京移动网络拥堵、服务器负载较高,多花几毫秒的网络时间换取降低更多的服务器响应时间,可能会有更好的速度?
  • 百度DNS,最后有个菜市口 127.0.0.1让人感觉怪怪的
  • 114DNS,支持TCP查询,安全性较高,我喜欢,虽然指路到天津移动,不差那1-2毫秒,说不定天津服务器访问少,服务器响应还更快。
  • OneDNS会不会倒闭,不稳定?
  • GoogleDNS 无污染劫持,解析结果也好,需要配合prc-dns。有条件的还是得买个搬瓦工Vultr,自己搞,体验是完全不一样的。
  • openDNS不能用,打开淘宝会相当慢

当然还有其他的DNS,例如4个1,请读者自行测试。

Heroku速度快的IP

印象中heroku.com速度很慢。
无意中发现,家里移动网DNS解析出来的IP是34开头,其他DNS解析出来的都是52开头,这个34开头的IP,速度比52的快上不少。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
dig still-spire-92883.herokuapp.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> still-spire-92883.herokuapp.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2105
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 4, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;still-spire-92883.herokuapp.com. IN A

;; ANSWER SECTION:
still-spire-92883.herokuapp.com. 129 IN CNAME us-east-1-a.route.herokuapp.com.
us-east-1-a.route.herokuapp.com. 60 IN A 34.231.64.128
us-east-1-a.route.herokuapp.com. 60 IN A 34.225.198.210
us-east-1-a.route.herokuapp.com. 60 IN A 34.231.14.184
us-east-1-a.route.herokuapp.com. 60 IN A 34.224.118.203
us-east-1-a.route.herokuapp.com. 60 IN A 34.237.148.235
us-east-1-a.route.herokuapp.com. 60 IN A 34.235.5.195
us-east-1-a.route.herokuapp.com. 60 IN A 34.206.117.105
us-east-1-a.route.herokuapp.com. 60 IN A 34.231.206.105

Written with StackEdit.

为什么你们家的大数据不赚钱?

近几年大数据与人工智能火了,大数据技术带来了一场革命性的创新,但是当我们把这些技术发展的逻辑梳理一下,就会发现,这一切的目的最终是让数据告诉公司怎样做才能更赚钱。

无数公司都蜂拥大数据领域,但是搞了很久,钱花了很多,都没有什么产出,原因在哪里呢?

笔者作为一个全栈工程师,在公司大数据组里从事多年的工作,反思我们的工作,觉得目前主要问题出在我们处在大数据产业的中下游,基本没有决定权,唯一的工作和其他工程师差不多,被动地写一些SQL,计算一下数据。自己都认为搞得都是沙子数据,出的成果都是沙子。很多IT公司的大数据情况也大抵如此。

当然,也有人看到了问题,去大数据上游,买数据、搞爬虫。爬虫组问过我们数据组很多次了,你们的爬取数据需求呢?是啊,我们数据组也不知道要爬什么。

这就尴尬了,整个公司没人知道哪些数据可以让我们提高利润。

唯一能做的,就是京东一样,某个客户买过什么东西,就反复地向该客户推送类似地商品,这显然让大数据技术走进了一个死胡同,让数据分析走进了一个死胡同,产出的都是沙子。

怎么办?当然是解决大数据上游的问题。

举个书上的例子。一个服装品牌,收集客户试穿衣服的例子,衣服上安装了一个磁条,换衣间安装一个磁条,统计哪些衣服被客户试穿了最多次数。想到这个办法的人,就是大数据的上游,至于后面写代码处理数据并生成报表的人,就是在大数据的下游,是这个产业链里最没价值的。

是的,公司要想通过大数据技术赚钱,就是要找到那个,想到把客户试穿衣服和最受欢迎产品联系起来的人,这才是大数据技术的核心。

2018年01月,国际油价不断上涨,国内油价跟着上涨,两桶油股价暴涨,看到没有,这三者是有逻辑链条的。看到国际油价不断上涨,就买入两桶油股票的人,永远是最有价值的,是处在数据产业链上游的。

残酷的现实是,大量大数据的从业人员,虽然他们拥有名校博士硕士的光环,他们只是处在大数据产业的中下游,永远是蒋干,事后不知道。当然,这并不妨碍他们赚钱,因为他们的薪资还是很高的。所以现在到处都是大数据、人工智能的培训机构、网络教学,和大量的学习者,他们站在了大数据产业偏中上游的位置,搞大数据的公司能不能赚钱,谁也不知道,都是他们都赚钱了。这让我想起2010年以前的ERP,当时很多企业也是对这种内部管理系统又爱又恨,但是最终没有产出,结果就是那样吧,没有革命性的效果。

或者,公司应该找麦肯锡那样的咨询公司,让专家来帮助寻找那个可以点石成金的数据。

猪才相信“风口上的猪”

很多人相信雷军一句谦虚的话:站在风口上,猪都能飞起来。导致人们纷纷寻找风口,而不是提高自己的能力,或者寻找优秀的人才。其实这种观点是完全错误的,因为观察很多现在成功的企业,你会发现优秀的人才总能成功,优秀的人才总能把企业做大做强,优秀的人才总能做出爆款的产品。

  • 雷军在创建小米之前,就是金山的顶梁柱
  • 傅盛在掌管猎豹之前,就是360安全卫士最大的功臣
  • 龚宇在掌管爱奇艺之前,就是搜狐焦点的创建,焦点在成功后被搜狐收购,变得默默无闻
  • 张小龙在创造微信前,就搞出了爆款软件FoxMail
  • 王兴在创建美团之前,就做出过几个不错的产品,例如饭否(特殊原因被关闭)
  • 腾讯,则是爆款产品一个接一个
  • 排挤乔布斯的苹果走向破产,跟随乔布的苹果,走向伟大
  • 李嘉诚可以穿越数个经济周期

他们都是站在了风口上吗?当然是,但是一只猪偶尔站在风口上被吹起来,一旦风停了,就会被狠狠地摔在地上,再也起不来。猪来掌管一家企业,即便企业盈利,也可能被猪搞死,相反,优秀的人才会把企业引向风口,让企业不断地盈利,让投资者赚钱。

最近几年创业者太多了,都拿到了大量的投资,最后成功的却寥寥无几,他们都是站上了移动互联网的风口,但是却刷死了一地的猪。最后,风头们也不得不选择,投资就是投人,没有优秀的人,再大的风口,最终也会血本无归,即便偶尔出现猪被吹起,但是没有翅膀的猪最后摔在地上,是不可避免的结局。

如何避免成为一只猪,打开人生成功之门呢?读书吧,去京东买书

MySQL导入CSV文件数据

用root登录

use test;

1
2
3
4
5
6
7
LOAD DATA INFILE "/var/lib/mysql-files/pv.csv"
INTO TABLE test_table
CHARACTER SET UTF8
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n';

Python读写Excel

openpyxl

文档

https://openpyxl.readthedocs.io/en/default/

安装

pip install openpyxl

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from openpyxl import Workbook
wb = Workbook()

# grab the active worksheet
ws = wb.active

# Data can be assigned directly to cells
ws['A1'] = 42

# Rows can also be appended
ws.append([1, 2, 3])

# Python types will automatically be converted
import datetime
ws['A2'] = datetime.datetime.now()

# Save the file
wb.save("sample.xlsx")