分类 工具 下的文章

a70d0081607081471df4db435641b51a.jpg

如何描述一个Web应用的性能模型,简单来说,应该是 PV(PageView) + RT(Response
Time)。一般我们经常会看到一些网站发布数据说,我们的网站一天的PV是多少多少,这其实就就是一个很直观的性能数据。

PV 其实说的就是业务量:你的系统在可接受的 RT 内,所承受的 PV 就是系统的处理能力;当然我们更关注的是单位时间内的 PV,比如每秒的
PV,这代表你系统所能承受的并发能力;

我一贯的观点是,压力测试更多的是发现潜在的问题,其实没有办法告诉你他能支撑多大的业务量;这其中主要的问题在于业务的快速变化和用户行为的不可预知。增加服务器一般就是处理能力不够了,比如
cpu 繁忙,io 繁忙;

当然很多时候,业务系统的扩展性决定了你的应用是不是能通过增加服务器的方式提高处理能力;更多的是要找到问题,对症下药。

下面介绍两款免费的压力测试软件:

ab

ab 测试工具是 Apache 提供的一款测试工具,具有简单易上手的特点,在测试 Web 服务时非常实用。

ab 可以在 Windows 系统中使用,也可以在 Linux 系统中使用。这里我说下在 Linux 系统中的安装方法,非常简单,只需要在 Linux 系统中输入 yum-y install httpd-tools 命令,就可以了。

安装成功后,输入 ab 命令,可以看到以下提示:

ab.jpg

ab 工具用来测试 post get 接口请求非常便捷,可以通过参数指定请求数、并发数、请求参数等。

例如,一个测试并发用户数为 10、请求数量为 100 的的 post 请求输入如下:

ab -n 100  -c 10 -p 'post.txt' -T 'application/x-www-form-urlencoded' 'http://test.api.com/test/register'

post.txt 为存放 post 参数的文档,存储格式如下:

usernanme=test&password=test&sex=1

附上几个常用参数的含义:

-n:总请求次数(最小默认为 1);
-c:并发次数(最小默认为 1 且不能大于总请求次数,例如:10 个请求,10 个并发,实际就是 1 人请求 1 次);
-p:post 参数文档路径(-p 和 -T 参数要配合使用);
-T:header 头内容类型(此处切记是大写英文字母 T)。

当我们测试一个 get 请求接口时,可以直接在链接的后面带上请求的参数:

ab -c 10 -n 100 http://www.test.api.com/test/login?userName=test&password=test

输出中,有几项性能指标可以提供给我们参考使用:

  • Requests per second:吞吐率,指某个并发用户数下单位时间内处理的请求数;
  • Time per request:上面的是用户平均请求等待时间,指处理完成所有请求数所花费的时间 /(总请求数 / 并发用户数);
  • Time per request:下面的是服务器平均请求处理时间,指处理完成所有请求数所花费的时间 / 总请求数;
  • Percentage of the requests served within a certain time:每秒请求时间分布情况,指在整个请求中,每个请求的时间长度的分布情况,例如有 50% 的请求响应在 8ms 内,66% 的请求响应在 10ms 内,说明有 16% 的请求在 8ms~10ms 之间。

JMeter

6ffe85677e50bb75152d45526a7ba667.png

该工具使用方法很多地方都有介绍,此处不在赘述。

使用方法:https://zhuanlan.zhihu.com/p/36526346
官网:https://jmeter.apache.org/

众所周知中文字体文件比较大,通常做法是将文字转换成图片来显示。但是当文案略微变换就必须生成新的图片。这样做不仅麻烦而且还很难自定义文字大小,通常伴随着图片压缩容易出现字体模糊的问题。

如果有一种方案既可以引用字体,又能使字体体积压缩,那无疑是最好的。那这就是本文所讲的字体压缩方案:

pip install fonttools
pyftsubset HanziPenSC-W3.ttf --text='abc这些文字可以用新字体' --output-file=HanziPenSC-W3-2.ttf

Mac 中有些软件是通过 pkg 包进行安装的,其中有很多是系统包。如果我们只通过删除 Applications 目录下的图标是不能完全删除的。

PKG 包安装原理

pkg 包的安装原理非常简单,它解压后就会把文件分门别类解压到指定的位置。

这样安装虽然简单,但是卸载就非常困难了。我们需要把安装时候散落在各个位置的文件全部找到并删除掉。

PKG 分析

在终端中运行 pkgutil --pkgs 命令就可以看到已经安装过的包名

com.betafish.adblock-mac
org.nodejs.node.pkg
com.diumoo.diumoo
in.sinew.Enpass-Desktop
com.audioguidia.radioFMOSX
com.eusoft.freeeudic
com.hewbo.chmreader
com.netease.163music
com.wutian.weibo
com.teamviewer.teamviewer14AuthPlugin
com.microsoft.Excel
com.atpill.atpill
com.mitledas.ChmPages

com.apple 开头的包多数是系统包,请不要删除

运行 pkgutil --files com.microsoft.Excel 就可以看到分布在各个地方的文件

usr/local/include/node/v8-profiler.h
usr/local/include/node/v8-testing.h
usr/local/include/node/v8-util.h
usr/local/include/node/v8-value-serializer-version.h
usr/local/include/node/v8-version-string.h
usr/local/include/node/v8-version.h
...

PKG 包卸载

如果依据上面的分析,一个目录一个目录删除简直太痛苦了。而系统自带的包管理工具 pkgutil 比起其他系统的包管理来说又非常弱,连最基本的 uninstall 的功能都没有提供。那么我们如何快速删除已经安装过的 pkg 包呢?

uninstall-pkg.png

借助 UninstallPKG 不仅可以轻松查看安装包所有文件的位置,还能卸载那些已经失效的安装包。比起使用终端操作,更加直观方便。

下载地址

https://xclient.info/s/uninstall-pkg.html

一般的截图软件仅支持区域截图,当遇到需要全屏滚动截图的时候就无能为力了。其实我们可以很容易来实现滚动截图,只要你电脑中有 Safari 浏览器或 Chrome 浏览器即可滚动截图所有屏幕内容。

Safari 滚动截图

快捷键 Command + Option + I 打开审查元素界面,然后在 <html> 标签上点击右键,然后点击捕捉屏幕快照即可。

safari-capture-screen.png

Chrome 浏览器

  1. 快捷键 Command + Option + I 打开审查元素界面
  2. 快捷键 Command + Shift + P(⚠️注意这里是shift)
  3. 输入 Capture,选择 Capture full size screenshot

稍等片刻即图就会保存

chrome-capture-screen.png

Windows 快捷键

Command -> Win
Option -> Alt

在CentOS 6更新后,不可避免的会在启动选项中产生多个内核选项,一个内核文件大概占100兆左右(一般100M以下),可以使用以下命令进行删除多余的内核.

1.首先列出系统中正在使用的内核:

# uname -a

2.查询系统中全部的内核:

# rpm -qa | grep kernel

3.将你想删除的内核删除掉:(例如,在我的系统中,我要删掉2.6.32-71.el6.i686的内核,需要把所有含有2.6.32-71.el6.i686字样的全部删掉)

#yum remove kernel-2.6.32-71.el6.i686
#yum remove kernel-devel-2.6.32-71.el6.i686

4.重启后就可以看到,内核被删掉了,同时多余的启动项也自动被删掉了,不需要自己手动修改/boot/grub/menu.lst