配置Nginx防止web服务器被压力测试

Posted Posted in Web, 入门, 菜鸟, 运维

最近经常用人帮忙做压力测试(参考文章:菜鸟的第一次web压力测试:ab命令参数详解),用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。

以下是防止压力测试的nginx配置文件(http段落):
cat /usr/local/nginx/conf/nginx.conf

http {

limit_conn_zone $binary_remote_addr zone=one:10m;

}

#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告ng ….[阅读全文]

菜鸟入门:使用rsync实现文件备份与同步

Posted Posted in Linux, 入门, 系统, 菜鸟

一. rsync介绍
rsync – remote synchronize是类unix系统下的数据镜像备份工具,它的特性如下:
1. 可以镜像保存整个目录树和文件系统。
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3. 无须特殊权限即可安装。
4. 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
5. 安全:可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6. 支持匿名rsync 同步文件,是理想的镜像工具。

二. rs ….[阅读全文]

菜鸟入门:如何使用命令查看Linux系统负载状态

Posted Posted in Linux, 入门, 系统, 菜鸟

在进程调度器维护的运行队列中,任何时刻至少存在一个进程,那就是正在运行的进程。而当运行队列中有不止一个进程时,就说明此时CPU比较抢手,其他进程还在等着,进程调度器应该尽快让正在运行的基础释放CPU。

通过在任何时刻查看/proc/loadavg,可以了解到运行队列的情况
[root@andyx.net ~]# cat /proc/loadavg
0.00 0.02 0.05  1/335  3427

注意1/335这部分,其中的1代表此时运行队列中的进程个数,而335则代表此时的进程总数。
最右边的3427代表到此时为止,最后创建的一个进程ID。
接下来,请看左边的三个 ….[阅读全文]

菜鸟的第一次web压力测试:ab命令参数详解

Posted Posted in Web, 入门, 菜鸟, 运维

Apache的httpd-tools包中附带的ab命令,它非常容易使用,ab命令可以直接在Web服务器本地发起测试请求。这至关重要,因为我们希望测试的服务器的处理时间,而不包含数据的网络传输时间以及用户PC本地的计算时间。

需要清楚的是,ab命令进行一切测试的本质都是基于HTTP,所以可以说它是对于Web服务器软件的黑盒性能测试,它获得的一切数据和计算结果,都可以通过HTTP来解释。

另有一些压力测试软件,例如LoadRnner、Jmeter等,则是不同程度上包含了服务器处理之外的时间,比如LoadRunner运行在用户PC上,可以录制浏览器行为,这种测试的结果玩玩侧重于站点用户的角度,有另外一些层面的参考意义。 ….[阅读全文]

浅谈分布式存储中HDFS与Ceph两者的区别以及优缺点

Posted Posted in Ceph, 云计算, 经验, 菜鸟

在前些年,我的工作经历主要都在Hadoop这个技术栈中,而最近有幸接触到了Ceph分布式储存系统。我认为这是一件很幸运的事,可以让我有机会去体验另一种大型的开源分布式存储解决方案,从而可以对比出HDFS与Ceph这两种几乎完全不同的存储系统有哪些优缺点、适合哪些工作环境。

对于分布式存储,尤其是开源的分布式存储,站在一个SRE运维的角度,我觉得主要为商业公司解决了如下几个问题:

1、可扩展性,满足伴随业务增长导致的更多海量数据存储需求;

2、高性价比,比商用存储更便宜,可以大幅降低成本;

3、稳定性,不轻易出错,方便操作,便于维护。 ….[阅读全文]

超详尽的Ceph分布式文件系统介绍及架构原理解说

Posted Posted in Ceph, 云计算, 笔记, 菜鸟

1. Ceph架构简介及使用场景介绍

1.1 Ceph简介

Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
….[阅读全文]

经验分享:并发批量管理500+台以上服务器shell/bash脚本分享(expect版)

Posted Posted in Shell脚本, 批量部署, 经验, 自动化, 菜鸟, 运维

也许很多人认为shell不能并发任务,其实可通过其它一些方式来实现。下面的脚本是我批量快速管理500+服务器脚本,阅读该脚本前建议先看《自动执行远程主机命令expect脚本》、《自动远程拷贝expect脚本》和《getopt:命令行选项、参数处理》

用法:
Usage: ./multi_main.sh [-h|–help]
[-v|-V|–version]
[-l|–iplist … ]
[-c|–config … ]
[-t| ….[阅读全文]

如何在shell/bash脚本中使用trap命令捕获信号

Posted Posted in Shell脚本, 入门, 自动化, 菜鸟

信号是LinuX系统中的一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务。 ….[阅读全文]

入门:Shell/Bash中的字符串基本处理操作(提取/替换/匹配/掐头/去尾)

Posted Posted in Shell脚本, 入门, 自动化, 菜鸟

字符串操作(长度,读取,替换)

表达式
含义

${string:position}
在$string中, 从位置$position开始提取子串

${string:position:length}
在$string中, 从位置$position开始提取长度为$length的子串

${string#substring}
从变量$string的开头, 删除最短匹配$substring的子串

${string##substring}
从变量$string的开头, 删除最长匹配$substring的子串

${string% ….[阅读全文]