配置Nginx防止web服务器被压力测试
最近经常用人帮忙做压力测试(参考文章:菜鸟的第一次web压力测试:ab命令参数详解),用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。
以下是防止压力测试的nginx配置文件(http段落):
cat /usr/local/nginx/conf/nginx.conf
…
http {
…
limit_conn_zone ….[阅读全文]
最近经常用人帮忙做压力测试(参考文章:菜鸟的第一次web压力测试:ab命令参数详解),用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。
以下是防止压力测试的nginx配置文件(http段落):
cat /usr/local/nginx/conf/nginx.conf
…
http {
…
limit_conn_zone ….[阅读全文]
一. rsync介绍
rsync – remote synchronize是类unix系统下的数据镜像备份工具,它的特性如下:
1. 可以镜像保存整个目录树和文件系统。
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3. 无须特殊权限即可安装。
4. 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩 ….[阅读全文]
在进程调度器维护的运行队列中,任何时刻至少存在一个进程,那就是正在运行的进程。而当运行队列中有不止一个进程时,就说明此时CPU比较抢手,其他进程还在等着,进程调度器应该尽快让正在运行的基础释放CPU。
通过在任何时刻查看/proc/loadavg,可以了解到运行队列的情况:
[root@andyx.net ~]# cat /proc/loadavg
0.00 0.02 0.05 1/3 ….[阅读全文]
Apache的httpd-tools包中附带的ab命令,它非常容易使用,ab命令可以直接在Web服务器本地发起测试请求。这至关重要,因为我们希望测试的服务器的处理时间,而不包含数据的网络传输时间以及用户PC本地的计算时间。
需要清楚的是,ab命令进行一切测试的本质都是基于HTTP,所以可以说它是对于Web服务器软件的黑盒性能测试,它获得的一切数据和计算结果,都可以通过HTTP来解释。
另有一些压力测试软件,例如LoadRnner、Jmeter等,则是不同程度上包含了服务器处理之外的时间,比如LoadRunner运行在用户PC上,可以录制浏览器行为,这种测试的结果玩玩侧重于站点用户的角度,有另外一些层面的参考意义。 ….[阅读全文]
在前些年,我的工作经历主要都在Hadoop这个技术栈中,而最近有幸接触到了Ceph分布式储存系统。我认为这是一件很幸运的事,可以让我有机会去体验另一种大型的开源分布式存储解决方案,从而可以对比出HDFS与Ceph这两种几乎完全不同的存储系统有哪些优缺点、适合哪些工作环境。
对于分布式存储,尤其是开源的分布式存储,站在一个SRE运维的角度,我觉得主要为商业公司解决了如下几个问题:
1、可扩展性,满足伴随业务增长导致的更多海量数据存储需求;
2、高性价比,比商用存储更便宜,可以大幅降低成本;
3、稳定性,不轻易出错,方便操作,便于维护。 ….[阅读全文]
Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
….[阅读全文]
也许很多人认为shell不能并发任务,其实可通过其它一些方式来实现。下面的脚本是我批量快速管理500+服务器脚本,阅读该脚本前建议先看《自动执行远程主机命令expect脚本》、《自动远程拷贝expect脚本》和《getopt:命令行选项、参数处理》
用法:
Usage: ./multi_main.sh [-h|–help]
[-v|-V|–versi ….[阅读全文]
1. 查看TCP连接状态
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’ 或
netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in sta ….[阅读全文]
信号是LinuX系统中的一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略,默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务。 ….[阅读全文]
字符串操作(长度,读取,替换)
表达式
含义
${string:position}
在$string中, 从位置$position开始提取子串
${string:position:length}
在$string中, 从位置$position开始提取长度为$length的子串
${string#substring}
从变量$string的 ….[阅读全文]