使用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