游泳是一项值得长期坚持的运动
游泳是一项值得长期坚持的运动
自由泳
😜我自小就在河边玩水长大的,所以水性还是有一点的。自由泳是我在大学的时候刻意去学的,出来工作之后就没多少时间去泳了,最近几年开始重拾起来。
这段视频是朋友帮我录的,我这是休闲游,适合长距离锻炼。从动作来看还有很大的进步空间,希望各位高人指点一二。
蛙泳
蛙泳算是我正式学习游泳的入门姿态吧,说不上标准,但是胜在可以长距离游,一口气游2-3千米不是问题,平蛙养生游。
游泳时间对比表
最后附上时间表,由于我不太喜欢短冲,因为短冲很累,游不远。一般都是休闲游,游1000米或者30分钟左右就上岸。
http://mms1.baidu.com/it/u=1188460896,3309939297&fm=253&app=138&f=JPEG&fmt=auto&q=75?w=500&h=637
赞赏
📹 视频待接入 controls=””>
(自由泳)
📹 视频待接入 controls=””>
(蛙泳)
负载均衡的分类及算法总结
负载均衡的分类及算法总结
一、负载均衡分类
1. DNS 负载均衡
思路是 DNS 解析同一个域名时可以返回不同的IP地址。
用来实现地理级别的均衡,例如,北方用户访问北京机房、南方用户访问深圳机房。
优点:
- 简单,成本低,直接交给DNS服务器处理即可,无需自己维护。
- 就近访问,提升访问速度。
缺点:
- DNS缓存时间较长,更新不及时。
- DNS控制权在域名商那里,无法根据业务特点定制扩展。
2. 硬件负载均衡
通过单独的硬件设备实现负载均衡,典型设备例如 F5、A10。
优点:
- 功能强大,支持各级负载均衡,支持各种负载均衡算法,支持全局负载均衡。
- 性能强大,可以支持100万以上的并发。
- 稳定性高。
- 支持安全防护,除了负载均衡的功能,还有防火墙、防DDoS攻击等安全功能。
缺点:
- 昂贵,价格几万甚至数十万。
- 扩展能力差。
3. 软件负载均衡
通过软件实现,例如我们熟悉的 Nginx(7层负载均衡) 和 LVS(4层负载均衡)。
和硬件负载均衡相比,性能差了很多,Nginx 能支持5万/秒,而F5是百万级,但价格也便宜了很多。
优点:
- 简单
- 便宜
- 灵活
缺点:
- 性能一般
- 没有防火墙等安全功能
负载均衡的典型架构
DNS、硬件、软件这3中方式可以组合使用,基本原则:
- DNS方式用于实现地理级别的负载均衡。
- 硬件方式用于实现集群级别的负载均衡。
- 软件方式用于实现机器级别的负载均衡。

二、负载均衡算法
1. 轮询
负载均衡系统接收到请求后,按照顺序轮流分配给服务器。
这种方式非常简单,只管按顺序分配,至于服务器当前负载情况、硬件能力等都不关心,只要服务器还能工作,就可以分配,除非服务器挂了。
2. 加权轮询
是轮询方式的一种改进,轮询方式是无差别分配,但实际服务器的处理能力是有差异的,所以需要区别对待。
为服务器设置权值,权值高的就多分配点。
3. 负载最低优先
将任务分配给当前负载最低的服务器。
例如 LVS 可以根据“连接数”判断服务器状态,NGINX 可以根据“HTTP请求数”来判断。
这种方式比轮询高级很多,可以感知服务器的状态了,但其复杂度也大大提高了,要收集统计服务器的负载信息。
4. 性能最优
优先将任务分配给处理速度最快的服务器,来达到最快响应客户端的目的。
此方式也是感知服务器的状态,标准是响应时间。
需要收集分析服务器的响应时间,这个工作本身消耗也不小,所以采用采样的方式,不统计所有任务的响应时间,统计一个周期(例如 10秒/1分钟/5分钟)内的状态。
优缺点与 负载最低优先 相同。
5. Hash
对请求中的关键信息(如IP)进行hash计算,hash值相同的请求分配到同一台服务器,例如业务中希望同一用户的请求都由同一台服务器来处理。
小结

赞赏
Linux 终端中 Ctrl+c, Ctrl+z, Ctrl+d 的区别
Linux 终端中 Ctrl+c, Ctrl+z, Ctrl+d 的区别
在 Linux 中:
Ctrl+c: (kill foreground process) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;
Ctrl+z: (suspend foreground process) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用 fg/bg 操作恢复执行前台或后台的进程。fg命令在前台恢复执行被挂起的进程,此时可以使用 Ctrl+z 再次挂起该进程,bg 命令在后台恢复执行被挂起的进程,而此时将无法使用 Ctrl+z 再次挂起该进程;
一个比较常用的功能:
正在使用 vi 编辑一个文件时,需要执行 shell 命令查询一些需要的信息,可以使用 ctrl-z 挂起 vi,等执行完 shell 命令后再使用 fg 恢复vi 继续编辑你的文件(当然,也可以在 vi 中使用 command 方式执行 shell 命令,但是没有该方法方便)。
Ctrl+d: (Terminate input, or exit shell) 一个特殊的二进制值,表示 EOF,作用相当于在终端中输入 exit 后回车;
还有以下几个:
Ctrl+/ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件
Ctrl+s 中断控制台输出
Ctrl+q 恢复控制台输出
Ctrl+l 清屏
其实,控制字符都是可以通过 stty 命令更改的,可在终端中输入命令 “stty -a”查看终端配置
参考链接:
赞赏
Ubuntu 16 04 LTS 安装 Postman
Ubuntu 16 04 LTS 安装 Postman
Chrome 版本的 Postman 已被废弃,建议到官网下载最新版本。
- 官网下载地址: https://www.getpostman.com/ 根据机器类型选择64位下载;
- 进入下载目录,解压该文件到 /opt 目录;
1 | $ sudo tar -xzf postman.tar.gz -C /opt/ |
- 进入解压目录,执行./Postman,软件就运行了,到此软件就安装完成了,但是这样每次都要进入这个目录,且启动器没有该应用;
- 创建全局变量,也就是在任何地方都可以执行postman,不用去到安装目录,执行
1 | $ sudo ln -s /opt/Postman/Postman /usr/bin/postman |
- 添加启动器应用图标,也就是可以从启动器快速启动,执行
1 | $ vim /usr/share/applications/postman.desktop |
- 添加如下内容
1 | [Desktop Entry] |
赞赏
Ubuntu 16 04安装JMeter测试工具
Ubuntu 16 04安装JMeter测试工具
JMeter是Java的测试工具,由Apache开发。
同样,JMeter是跨平台的。
下载
http://jmeter.apache.org/download_jmeter.cgi
https://github.com/apache/jmeter

安装
1 | $ 7z x apache-jmeter-3.2.zip |
启动
1 | $ /opt/jmeter/bin/jmeter.sh |
创建Dash图标:
1 | $ sudo gedit ~/.local/share/applications/apache_jmeter.desktop |
内容
1 | [Desktop Entry] |
参考链接
http://www.cnblogs.com/imyalost/p/5804359.html(使用方法)
https://www.ibm.com/developerworks/cn/webservices/1004_sunch_jmeter_soap/(使用方法)
http://jingyan.baidu.com/article/046a7b3eb72211f9c27fa929.html(使用方法)
Ubuntu Desktop禁用 开启笔记本触控板
Ubuntu Desktop禁用 开启笔记本触控板
设备 ID
输入一下命令查看设备 id
1 | $ xinput list |
输出
1 | ⎡ Virtual core pointer id=2 [master pointer (3)] |
找到 TouchPad 那一行,设备 id 为 14;
脚本
新建 touchpad 脚本;
1 | $ sudo vim /{自定义路径}/touchpad.sh |
touchpad1.sh
1 | #!/bin/bash |
保存退出;
最后,通过 添加系统快捷键 或者 直接运行脚本 来开关触控板,也可以借助开源软件 touchpad-indicator 更好地实现。但是,为了个人为了保持系统简洁,首选使用脚本。
更新:2018/07/21
由于最近系统 upgrade 了,脚本不能自动获取 TouchPad 的 id,google 了一下发现有人写了一个更自动化的脚本,接近 touchpad-indicator 的功能,在这里贴上。
touchpad2.sh
1 | #!/bin/bash |
该脚本唯一的缺点就是不能自动获取外置鼠标键盘的设备名称,由于个人有两套以上的鼠标键盘,所以根据自己的使用习惯,还是选择了快捷键控制的方式。
touchpad3.sh
1 | #!/bin/bash |
参考
赞赏
在Ubuntu 16 04中自定义您的通知气泡
在Ubuntu 16 04中自定义您的通知气泡
Leolik的PPA中提供了通知OSD的补丁版本,该版本具有Ubuntu的屏幕显示通知的一些附加功能。
使用补丁和图形化的通知OSD配置工具,您可以通过以下方法轻松地调整通知气泡:
- 点击后关闭通知提示框
- 当鼠标指针悬停在其上时,请停止淡出。
- 更改通知显示超时。
- 更改通知提示框的位置
- 编辑气泡大小,背景,径向等。
- 编辑文字大小,颜色等。

安装
安装通知OSD的修补程序版本:
终端(Ctrl + Alt + T)并逐个运行以下命令以从PPA中获取它:
1 | $ sudo add-apt-repository ppa:leolik/leolik |
通过在终端中运行以下命令来重新启动notify-osd守护程序:
1 | $ pkill notify-osd |

安装用于NotifyOSD的图形配置工具:
终端(Ctrl + Alt + T)并逐一运行以下命令,以从Webupd8 PPA中获取它:
1 | $ sudo add-apt-repository ppa:nilarimogard/webupd8 |
最后启动配置工具,并享受自定义屏幕通知的乐趣:

参考链接
赞赏
如何将 Ubuntu 升级到 18 04 (Bionic Beaver)
如何将 Ubuntu 升级到 18 04 (Bionic Beaver)
最新的 Ubuntu LTS 版本 Ubuntu 18.04 (Bionic Beaver) 于 2018 年 4 月 26 日发布,它会被支持 5 年,一直直到 2023 年 4 月。下面将向大家展示如何从 Ubuntu 16.04 或更高版本升级到 Ubuntu 18.04 (Bionic Beaver) 。
先决条件
在开始之前,请确保以具有 sudo 权限的用户身份登录。
备份您的数据
首先,也是最重要的一点,请一定在开始升级操作系统之前备份数据。如果您在虚拟机上运行 Ubuntu ,最好备份完整的系统快照,以便在更新失败的时候轻松恢复您的计算机。
更新当前安装的软件包
在开始版本升级之前,建议将所有当前安装的软件包更新到其最新版本。
1 | sudo apt update |
我们还将运行 dist-upgrade,它会执行已安装软件包的主要版本升级,并可能删除一些不必要的软件包:
1 | sudo apt dist-upgrade |
将 Ubuntu 16.04 升级到 Ubuntu 18.04
Ubuntu 提供了一个工具 do-release-upgrade ,它让升级过程非常简单。该工具应该已经安装在您的系统上,但如果由于某种原因没有安装它,您可以安装它:
1 | sudo apt install do-release-upgrade |
运行 do-release-upgrade, 开始升级:
1 | sudo do-release-upgrade |
如果您像我一样通过 SSH 升级系统,系统会询问您是否要继续。
1 | Reading cache |
1 | Starting additional sshd |
升级工具完成下载软件包列表和完成计算变更内容后,将询问您是否要继续
1 | Do you want to start the upgrade? |
再次键入 y,正式开始升级。
在升级过程中,您将被问到各种问题,例如您是要保留现有配置文件还是安装软件包维护者的版本。如果您没有对文件进行任何自定义更改,则应键入Y;如果要保持当前配置则输入N。
1 | Configuration file '/etc/sysctl.conf' |
升级过程可能需要一些时间,具体取决于更新次数和网络的下载速度。
安装新软件包后,更新工具会询问您是否要删除过时的软件,如果您不确定键入 d 查看过时软件包列表,在大多数情况下,输入 y 并删除所有过时的软件包是安全的:
1 | Searching for obsolete software |
升级过程完成并假设一切顺利后,系统会要求您重新启动计算机。输入 y 以继续:
1 | System upgrade is complete. |
确认更新
等待服务器重启完成,然后重新连接。登录后,您将收到以下消息:
1 | Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64) |
您还可以使用以下命令检查 Ubuntu 版本:
1 | lsb_release -a |
1 | No LSB modules are available. |
到现在为止,你现在可以享用新的 Ubuntu 18.04 LTS (Bionic Beaver) 了。
