菜鸟入门:浅谈Linux内存管理机制

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

经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。

主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。

而Windows是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux都将能充分利用起来,发挥了硬件投资带来的好处,而Windows只将其做为摆设,即使增加8GB甚至更大。 ….[阅读全文]

Shell/Bash脚本入门:String字符截断

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

如果是文件路径的进行字符截断可以用basename和dirname这两个工具
basename可以从一个文件路径中截一个文件名
$ basename /root/lnmp/lnmp_install.sh
lnmp_install.sh
dirname可以从一个文件路径中截到一个目录路径
$ dirname /root/lnmp/lnmp_install.sh
/root/lnmp
使用bash内部命令进行字符截断
bash有自带的功能来对变量进行字符截断,一般使用”#”, “##”, “%%”, “%”, “*” 组合来实现。

例子:
$ teststring=www. ….[阅读全文]

配置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上,可以录制浏览器行为,这种测试的结果玩玩侧重于站点用户的角度,有另外一些层面的参考意义。 ….[阅读全文]

如何在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% ….[阅读全文]