在linux系统中,要实现内存模拟挂载为硬盘,则要先来了解下什么是tmpfs文件系统。

tmpfs是一种虚拟内存文件系统,最大的特点是它的存储空间在VM里面,这里提一下VM(virtual memory),VM是由linux内核里面的vm子系统管理,现在大多数操作系统都采用
了虚拟内存管理机制。linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由你自己决定的。

Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,为什么需要Swap呢?当一个进程申请一定数量的内存时,如内核的vm子系统发现没
有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。
如果系统有足够大的物理内存,那就根本无需划分Swap分区了。

VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。
但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。

如何使用tmpfs?

复制代码代码示例:
#mount  -t tmpfs -o size=20m  tmpfs /mnt/tmp

上面这条命令分配了上限为20m的VM到/mnt/tmp目录下,用df命令查看一下,确实/mnt/tmp挂载点显示的大小是20m,但是tmpfs一个优点就是它的大小是随着实际存储的容量而
变化的,换句话说,假如/mnt/tmp目录下什么也没有,tmpfs并不占用VM。上面的参数20m只是告诉内核这个挂载点最大可用的VM为20m,如果不加上这个参数,tmpfs默认的大
小是RM的一半,假如你的物理内存是128M,那么tmpfs默认的大小就是64M,

tmpfs的缺点
当然有,由于它的数据是在VM里面,因此断电或者你卸载它之后,数据就会立即丢失,这也许就是它叫tmpfs的原故。不过这其实不能说是缺点。那tmpfs到底有什么用呢?

tmpfs的用途
由于tmpfs使用的是VM,因此它比硬盘的速度肯定要快,因此我们可以利用这个优点使用它来提升机器的性能。

复制代码代码示例:
#mount -t tmpfs  -o size=2m   tmpfs /tmp

分配最大2m的VM给/tmp。
由于/tmp目录是放临时文件的地方,因此我们可以使用tmpfs来加快速度,由于没有挂载之前/tmp目录下的文件也许正在被使用,因此挂载之后系统也许有的程序不能正常工作

在/etc/fstab中添加如下语句,即可:

复制代码代码示例:
 tmpfs    /tmp  tmpfs  size=2m    0   0

重启电脑,恢复。

测试过程:

复制代码代码示例:
[[email protected] shm]# df -h
Filesystem    Size  Used Avail Use% Mounted on
/dev/sda1     852G  325G 483G  41% /
tmpfs      16G 0  16G   0% /dev/shm
/dev/md0      1.8T  506G 1.3T  30% /opt
[[email protected] shm]#
[[email protected] shm]# mount -t tmpfs -osize=2048M tmpfs /mnt/ram/
[[email protected] shm]#
[[email protected] shm]# df -h
Filesystem    Size  Used Avail Use% Mounted on
/dev/sda1     852G  325G 483G  41% /
tmpfs      16G 0  16G   0% /dev/shm
/dev/md0      1.8T  506G 1.3T  30% /opt
tmpfs     2.0G 0 2.0G   0% /mnt/ram
[[email protected] shm]#
[[email protected] shm]#
[[email protected] chairly]#cp codeblocks-8.02-src.tar.bz2 /mnt/ram/
[[email protected] ram]#
[[email protected] ram]# df -h
Filesystem    Size  Used Avail Use% Mounted on
/dev/sda1     852G  325G 483G  41% /
tmpfs      16G 0  16G   0% /dev/shm
/dev/md0      1.8T  506G 1.3T  30% /opt
tmpfs     2.0G  6.6M 2.0G   1% /mnt/ram
[[email protected] ram]#
[[email protected] ram]# free
total   used   free    shared    buffers cached
Mem: 32818744    3167792   29650952  0    128844    2710972
-/+ buffers/cache: 327976  32490768
Swap:    35005624  0   35005624
[[email protected] ram]#
[[email protected] ram]# rm *
rm: remove regular file`codeblocks-8.02-src.tar.bz2′? y
[[email protected] ram]#
[[email protected] ram]# free
total   used   free    shared    buffers cached
Mem: 32818744    3161160   29657584  0    128856    2704292
-/+ buffers/cache: 328012  32490732
Swap:    35005624  0   35005624
[[email protected] ram]#

在/mnt/ram下无法使用dd命令测试硬盘读写速度。
总是报dd: opening `/mnt/ram/write.dat’: Invalid argument。

有知道此错误的原因与解决方法的朋友,请分享下。

默认安装的CentOS,已经开启了tmpfs。tmpfs会使用内存,如果内存用完,会用swap空间。调整tmpfs大小,别超过内存+swap的大小。如果系统资源紧张,用完了内存,用到swap时,tmpfs的效率就大幅度降低了。所以不妨多安装些内存,反正内存价格也没多贵。tmpfs是内存文件系统,类似于DOS年代的ramdisk,mount上去就能用了,不需要用mkfs之类的命令来初始化。

# cat /etc/fstab

LABEL=/                 /                        ext3    defaults        1 1
LABEL=/home         /home                ext3    defaults        1 2
LABEL=/boot1        /boot                  ext3    defaults        1 2
tmpfs                    /dev/shm             tmpfs   defaults        0 0
devpts                   /dev/pts              devpts  gid=5,mode=620  0 0
sysfs                      /sys                    sysfs   defaults        0 0
proc                      /proc                  proc    defaults        0 0
LABEL=SWAP-sda3  swap                  swap    defaults        0 0

其中tmpfs那一行,就是开启tmpfs。在tmpfs里存放的文件,读写非常快,毕竟直接读取内存,当然比读取磁盘快多了。tmpfs里的文件,重启后就没了。适合存放session,或其他临时性的文件。可以大幅度提供读写速度。

4G的内存,系统默认为开2G的tmpfs空间。

12G的内存,系统默认开6G的tmpfs空间。就是说,默认开一半的内存空间来给tmpfs。

可以使用 shm_open,shm_unlink等方法来操作tmpfs。

查看tmpfs大小:
df -h /dev/shm

Filesystem           Size  Used Avail Use% Mounted on
tmpfs                 2.0G   24K  2.0G   1% /dev/shm

修改tmpfs大小 
修改/etc/fstab 文件中的tmpfs那一行: 
tmpfs /dev/shm tmpfs defaults,size=8192M 0 0

然后重新加载tmpfs。

# umount /dev/shm; mount /dev/shm; df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  8.0G     8.0G   0% /dev/shm

重启命令:

1、reboot

2、shutdown -r now 立刻重启(root用户使用)

3、shutdown -r 10 过10分钟自动重启(root用户使用)

4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

关机命令:

1、halt   立刻关机

2、poweroff  立刻关机

3、shutdown -h now 立刻关机(root用户使用)

4、shutdown -h 10 10分钟后自动关机

I’ve only been using Magento for a few days but have found it to be a breeze so far with just about everything working fine.

The only problem I’m having is that when I try to get to CMS > Manage Pages from the Admin Panel I receive a 404 error.

I have installed the most recent update (but I had the problem before the update as well). No hacks have been done to any code yet.

I’m not a PHP expert, nor do I have a lot of systems admin experience so I’m really hoping someone here can point me in the right direction to solve this problem.

 

Found a solution for this that works in my scenario. Take a peak in your `cms_page_store` SQL table. You’ll more than likely see one or more entries there for stores that no longer exist. In my case, I had a page_id of 2 (Home Page) that had entries for store id 1, 2 and 3. Since I deleted stores with ID of 2 and 3, those cms_page_store relations were no longer valid.

I simply removed the two offending entries from this table and now CMS/Manage Pages works properly in the admin.

Not sure if there are any other references to these now missing stores anywhere else in the database, but I can only imagine they would be dealt with in a similar manner.

Seems like those relations should be toasted automagically when the store view is deleted via ‘Manage Stores’??

Hope this helps!

 

http://www.magentocommerce.com/boards/viewthread/18223/

magento

通过KEY安装的插件都可以在connect里面卸载插件,但如果我们直接上传的文件,在connect是找不到的,那该怎么卸载该插件呢?
这里强创网络通过这篇告诉大家卸载magento插件的方法,该文章主要针对刚入门的新手,相信新手们看了这篇文章之后,明白怎么操作了。
第一方法: 就是直接删除对应的文件,这方法比较麻烦。
第二方法: 进入网站根目录,找到app/etc/modules文件下,下面是各个模板的配置文件,您找到您安装的插件的对应的那个xml文件:

<?xml version="1.0"?>
<config>
    <modules>
        <Magazento_Easytopsell>
            <active>true</active>
            <codePool>community</codePool>
        </Magazento_Easytopsell>
    </modules>
</config>

只要把上面代码中的

<active>true</active>

修改为:

<active>false</active>

就可以了,如果不想修改代码,也行,直接把这个XML文件删除即可,模块就不起作用了,这样以来模块就不会被加载进来了!大家去试试吧。

运行发现报错。。

“fast_backend must implement the Zend_Cache_Backend_ExtendedInterface interface”

好吧。。现在就只能看代码找原因了。。

得到的结果是,

app/code/core/Mage/Core/Model/Cache.php

在Mage_Core_Model_Cache类的_getBackendOptions方法内找到

case ‘xcache’:
if (extension_loaded(‘xcache’)) {
$enable2levels = true;
$backendType = ‘Xcache’;
}
break;

把$enable2levels = true;这行屏蔽。

国内的xcache在PHP加速上一直很不错,至于怎么不错,那就只能自己体验了。。

在蜗牛般的magento上,我也尝试着用下xcache:

 

在app/etc/local.xml里完成配置后:

<global>

………………………………………..

<cache>
<backend>xcache</backend>
<prefix>rocky_</prefix>
</cache>

………………………………………..

</global>

运行发现报错。。

“fast_backend must implement the Zend_Cache_Backend_ExtendedInterface interface”

好吧。。现在就只能看代码找原因了。。

得到的结果是,

app/code/core/Mage/Core/Model/Cache.php

在Mage_Core_Model_Cache类的_getBackendOptions方法内找到

case ‘xcache’:
if (extension_loaded(‘xcache’)) {
$enable2levels = true;
$backendType = ‘Xcache’;
}
break;

把$enable2levels = true;这行屏蔽。

 

运行发现错误解除。。

xcache也能正常运用了,当然核心文件最好别改了,自己写个模块重写吧。。

启用eAccelerator适配器

打开 {Magento_root}/app/etc/local.xml,在里面增加如下3行

</resources>
<session_save><![CDATA[files]]></session_save>
<cache>
        <backend>eaccelerator</backend>
    </cache>

magento服务器优化

1、压缩js,css代码,如果有必要把所有的css,js分别综合到一个文件中,并压缩,缓存

2、清除magento模板中不必要的注释,为所使用到的图片瘦身

3、 优化magento代码,这个步骤工作量大,但可能是效果显著的步骤,不过前提是你非常熟悉magento,彻底删除不用的模块,关闭没用的block, 清除无效,无用的xml(解析xml非常昂贵的),在一个页面中尽量不要大量调用magento的image resize功能,非常消耗内存,除非你自己优化代码。

4、mysql配置优化,充分发挥你的硬件资源,下面的数值要根据你的配置调整

key_buffer_size = 512M
max_allowed_packet = 64M
table_cache = 512
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M
tmp_table_size = 128M
query_cache_size = 96M
query_cache_type = 1
thread_cache_size = 8
max_connections = 400
wait_timeout = 300

5、将magento的var目录挂载到内存中,加快读取速度,如

mount -t tmpfs -o size=100M,mode=0777 tmpfs var

使用tmpfs加速

服务器环境:针对内存512M左右的linux服务器的优化

1
2
mount -t tmpfs -o size=128M,mode=1777 tmpfs /path/to/var/cache/
mount -t tmpfs -o size=32M,mode=1777 tmpfs /path/to/var/session/

防止系统重启后设置失效

1
/etc/fstab

把下面两行增加到上面文件中

1
2
tmpfs /path/to/var/cache/ tmpfs size=128M,mode=1777 0 0
tmpfs /path/to/var/session/ tmpfs size=32M,mode=1777 0 0

提示:记得将/path/to 改成到达你网站根目录的路径
资料来源:http://yoast.com/magento-performance-hosting/
关于tmpfs的详细资料及教程:http://www.ibm.com/developerworks/cn/linux/filesystem/l-fs3/

6、安装php加速器,如APC,XCACHE,eAccelerator,安装方法参考相关的网站

然而归于根本,最大的优化来自于对模板,对代码,对block的优化。

在 Magento的优化中, Mysql的优化是很重要的,在Magento的官方网给出了有关Mysql的优化, 官方网并没有要我们把Mysql的存储引擎改为innodb, 但我觉的得这是很有必要的,当改成innodb后,还得把Mysql的配置文件修改修改下, 有时根据官方的文档来并不能成功, 这时就要看你的环境而定了, 下面给出我所配置的mysql文件给大家参考:

(继续)

Magento系统后台优化加速

 
1、给系统减负
去掉Incoming Message,进入后台,  System—Configuration– Advanced– Mage_AdminNotification —- 选择 Disable ,如果你用不上投票功能,就把Mage poll也关闭了;
2、开启缓存
我们知道,在开发的时候,关闭缓存是比较好的,可以及时查看修改的效果,但运营后,为了让访客浏览快速,我们要在后台开启缓存功能
System—>Cache Management– Select All- Disable或Enable以提升运营速度。
3、去掉不需要的产品属性
进入后台,Catalog- Attributes,把我们不需要用到的属性可以去掉;
4、开启编译设置,最少能提升25%的运行速度
System-tools- Compilation 系统默认是关闭状态的,我们开启Run Compilation Process
5、整合Js和CSS
System- Configuration- Developer- Java Script Settings和CSS Setting全部选择Yes
这样,我们就把零散的Js和css就合并到一起,减少了冗余代码和系统的运行速度。
基本上,设置完这些,能让你的站点运行速度提升30-40%。
下面我们来说我们的重点,magento的seo,为了便于理解,我把它分为两个部分来讲,一是站内优化设置,一是站外优化设置: