公司在使用Odoo进行内部信息化管理,随着业务增长,服务器性能问题变成了瓶颈,为了解决这些问题,最近的工作重点将移到性能调整上来,同时也会在此记录整个处理过程,以便日后回顾。

1.根据相关资料建议,在linux文件系统有一个预读的参数,可以通过如下命令查看:

blockdev --getra /dev/sda

一般的默认值为256,我们可以将此数据改大一点,建议的范围是在4096-16384之间,预读不足的常见问题是写磁盘的速度要比读取的速度要高。

改变参数的命令格式是:blockdev --setra 4096 /dev/sda

需要根据每块磁盘单独进行设置,通常可以将调整命令写入rc.local启动脚本中。

2.在linux中,用户每访问一个文件,系统都会更新文件的其中一个属性(上次访问时间),当用户在访问数据时,系统会需要不断的进行写操作,这个在系统中也是一笔不小的开销,我们可以在/etc/fstab文件中,对挂载的卷加上noatime选项来禁用此行为:

/dev/sda1 / ext3 noatime,errors=remount-ro 0 1

修改完以后,执行sudo mount -a 命令生效即可。

3.在linux中有关读缓存与交换的参数如下有两个,可以在/etc/sysctl.conf中加上两行:

vm.swappiness=0

vm.overcommit_memory=2

这些参数可以在/proc/sys/vm/中查看

4.共享内存的设定,ubuntu中共享内存的默认值都很低,为了更好的利用服务器资源,我们将对其进行调整,网上有一个调整的脚本。


#!/bin/bash

page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall

直接以root身份运行 ./shmsetup >> /etc/sysctl.conf

sysctl -p



Logo

更多推荐