优化

一个小技巧提速你的UBUNTU

我们知道,Windows下有一个叫做虚拟内存的文件,用以弥补物理内存之不足。Linux下则是一个swap分区,叫做交换分区,其功能相当于Windows下的虚拟内存,但是效率更高。

显然,虚拟内存是从硬盘上划分一部分空间作为内存,其速度必然比物理内存慢。或许很多朋友都认为Linux系统一定是优先使用物理内存,物理内存不够时,再启用swap。实则不然,尽管物理内存仍然充裕,Linux也不时地使用虚拟内存。这个设计对于服务器而言是非常有用的,但对于Linux桌面用户而言,却使得物理内存未被充分利用,是导致系统速度变慢的原因之一。…

        

多快好省:10个技巧加速你的LinuxMint/Ubuntu

之前写过一篇关于使用Prelink加速LinuxMint/Ubuntu软件启动速度的文章--《未雨绸缪:如何加快Linux软件启动速度》

近日,在国外Linuxer的博客上看到一篇关于加速LinuxMint/Ubuntu的文章,觉得挺有帮助的,特加以整理,并经过实操检验,分享予大家。不过,大家在修改自己的系统配置文件前,最好先做好备份。

1.使用Preload预加载
Prelink类似,Preload是一个运行于后台的监护程序,探测那些常用的软件,并将其放入缓存,以起到加速的作用。在LinuxMint/Ubuntu下安装Preload很简单:
sudo apt-get install preload
Preload默认的配置对于普通用户而言已经不错了,一般不需要修改。如果有进一步掌控其的欲望,可以打开其配置文件进行修改:
sudo gedit /etc/preload.conf

2.清理APT缓存
apt应该算是LinuxMint/Ubuntu系统中使用率最高的命令了,无论安装、卸载软件,还是更新软件源缓存及相关维护,都离不开它。使用逾久,apt缓存也就变得较为臃肿,有必要清理:
sudo apt-get autoclean

3.禁用不必要的启动项
在“启动应用程序”中,根据自身实际,取消不必要的启动项,如欢迎程序、检测新硬件、蓝牙(如果本机没有蓝牙)、桌面共享等。

4.调整交换分区参数
详见《一个小技巧提速你的LinuxMint》

5.禁用休眠/挂起功能(务必慎重)
如果你不需要电脑的休眠/挂起功能,可以手动禁用它(笔记本电脑最好不要禁用休眠/挂起功能)。以管理员身份编辑配置文件:
sudo gedit /etc/initramfs-tools/conf.d/resume
将RESUME=UUID=****这行注释掉(行首加#):

6.修改grub2等待时间
无论你的电脑是否有2个或更多的操作系统,只要安装了LinuxMint/Ubuntu,就必然会安装grub2作为引导管理器。grub2启动时,会在默认的启动项上停留数秒(默认10秒),等待用户选择。我们可以把这个时间改的更短。如果是LinuxMint/Ubuntu单系统,可以直接改为0,即直接进入,无需等待。
以管理员身份编辑grub配置文件,修改GRUB_TIMEOUT项后的数字。
sudo gedit /etc/default/grub

7.使用ZRAM提高内存性能
如果你的电脑内存不太充裕(1G以下),可以使用ZRAM软件来提高内存性能。ZRAM能在系统中创建一个压缩的块设备,用于模拟一个交换分区,减少因内存不足而多硬盘的蹂躏频次。可以使用如下PPA安装ZRAM:

        

PHP 进阶之路 – 亿级 pv 网站架构实战之性能压榨

本博客并非全部原创,其实是一个知识的归纳和汇总,里面我引用了很多网上、书上的内容。也给出了相关的链接。

本文涉及的知识点比较多,大家可以根据关键字去搜索相关的内容和购买相应的书籍进行系统的学习。不对的地方大家予以批评指正。

有人给我留言说,亿级 PV 就别写文章了,随便用几个开源软件就能搞定了,只要不犯什么大错。我不以为然,如果你利用了相同的思想,使用了更高性能的基础服务,也许就能支持更多的流量并发,节约更多的服务器,优化的思路才是重点。

本内容的视频分享见我的直播

                

【译】一行代码就将你的PHP-FPM内存占用降低至少一半

标题直译:如何减少PHP-FPM (php5-fpm)内存占用50%
原标题:How to reduce PHP-FPM (php5-fpm) RAM usage by about 50%
英文原文:http://linuxbsdos.com/2015/02...

PHP-FPMPHPFastCGI过程管理器。在类Unix操作系统(包括Linux以及BSD系统)中,PHP-FPM通过安装php5-fpm(Linux)或者php56-fpm(FreeBSD 10.1

        

网卡中断设置

密集网络IO的服务器,需要设置网卡中断来解决性能瓶颈。通过使用top观察每个核的si是否很高。如果处理网络中断的CPU达到瓶颈,将会影响网卡收发包,严重的情况下会出现大量丢包。通过下面的脚本,可以将软中断平均到CPU的每个核上,解决网卡中断瓶颈问题。

ffffff 这里是根据CPU核数进行计算的

#!/bin/bash
# Enable RPS (Receive Packet Steering)

rfc=4096
cc=$(grep -c processor /proc/cpuinfo)
rsfe=$(echo $cc*$rfc | bc)
sysctl -w net.core.rps_sock_flow_entries=$rsfe
for fileRps in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus)
do
    echo ffffff > $fileRps
done

for fileRfc in 
        

php session阻塞页面分析及优化 (session_write_close session_commit使用)

这个问题很多做PHP开发朋友应该都有遇到过,一个启用了session_start 页面,由于执行时间过长。导致用户访问另外一个很简单的启用session_start页面一直阻塞着。 直到第一个页面执行完了。第二个页面才可以读取。这个就是,我们常说的,session阻塞机制。

也就是说session是有锁的,为防止并发的写会话数据,php自带的的文件保存会话数据是加了一个互斥锁(在session_start()的时候)。
程序执行session_start(),此时当前程序就开始持有锁。
程序结束,此时程序自动释放Session的锁。

如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,PHP执行session_start(),就会取得文件独占锁,只有在该请求处理结束后,才会释放独占锁。这样,同时多个请求就会引起阻塞。…

            

erlang 虚机CPU 占用高排查

-问题起因

近期线上一组服务中,个别节点服务器CPU使用率很低,只有其他1/4。排除业务不均,曾怀疑是系统top统计错误,从 Erlang调度器的利用率调查  找到通过erlang:statistics(scheduler_wall_time) 查看服务器CPU低的机器调度器实际的CPU利用率很高接近100%,而其他机器都不到30%。

分析不同业务服务,发现只有在node 中进程数采用调度器CPU利用低这个问题。…