公司在使用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