正在加载...
分页: 54/186 第一页 上页 49 50 51 52 53 54 55 56 57 58 下页 最后页 [ 显示模式: 摘要 | 列表 ]
GFS(Google File System):
http://www.codechina.org/doc/google/gfs-paper/

MogileFS:
http://www.danga.com/mogilefs

Hadoop/HDFS:
http://hadoop.apache.org/core

KFS(Kosmos Distributed File System):
http://kosmosfs.sourceforge.net

NDFS(Nutch Distributed File System):
http://lucene.apache.org/nutch/
http://wiki.apache.org/nutch/NutchDistributedFileSystem

Gluster(Gluster File System):
http://www.gluster.org

Coda(Coda File System):
http://www.coda.cs.cmu.edu/

Global(Red Hat Global File System Redhat并购):
http://www.redhat.com/gfs

Lustre(Lustre File System Sun并购):
http://www.lustre.org

PVFS(Parallel Virtual File System,非开源):
http://www.parl.clemson.edu/pvfs

GPFS(IBM General Parallel File System, 非开源):
http://www-03.ibm.com/systems/clusters/software/gpfs

OpenAFS(Open Andrew File System IBM):
http://www.openafs.org

XFS(SGI, 不算分布式文件系统):
http://oss.sgi.com/projects/xfs

MOSIX:
http://www.mosix.org

还有一个国内牛人写的FastDFS一个高效的分布式文件系统
http://code.google.com/p/fastdfs/
从以下几组图中,你找到自己的影子了么?哈哈~

A血型:认真、冷静、好分析、很敏感、很本分、容易看不惯别人…

B血型:直率、自由散漫、做事情完全不在状态、精神不集中,容易分心…

O血型:很容易受到周遭影响、喜欢偷机、老师在与不在不一样、有贼心没贼胆…

AB血型:好奇心重、无理头,不按牌理出牌、自己只顾自己(自私)、懒散、没有时间概念…

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

/proc/cpuinfo

[ 2010/01/25 11:46 | by selboo ]
      一些操作系统的最新版本已经更新了 /proc/cpuinfo 文件,以支持多路平台.如果您的系统中的 /proc/cpuinfo 文件能够正确地反映出处理器信息,那么就不需要执行上述步骤.反之,可采用本文中的信息进行解释.

      /proc/cpuinfo 文件包含系统上每个处理器的数据段落./proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT)技术检查:processor, vendor id, physical id, siblings, core id 和 cpu cores.

processor 条目包括这一逻辑处理器的唯一标识符.
physical id 条目包括每个物理封装的唯一标识符.
core id 条目保存每个内核的唯一标识符.
siblings 条目列出了位于相同物理封装中的逻辑处理器的数量.
cpu cores 条目包含位于相同物理封装中的内核数量.
如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel.

      拥有相同 physical id 的所有逻辑处理器共享同一个物理插座.每个 physical id 代表一个唯一的物理封装.Siblings 表示位于这一物理封装上的逻辑处理器的数量.它们可能支持也可能不支持超线程(HT)技术.每个 core id 均代表一个唯一的处理器内核.所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上.如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术.如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器.cpu cores 条目也可以表示是否支持多内核.

      例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程(HT)技术的处理器内核,则 /proc/cpuinfo 文件将包含此数据.(注:数据并不在表格中.)


processor    0  1  2  3  4  5  6  7
physical id    0  1  0  1  0  1  0  1
core id        0  2  1  3  0  2  1  3
siblings        4  4  4  4  4  4  4  4
cpu cores    2  2  2  2  2  2  2  2

      此例说明逻辑处理器 0 和 4 驻留在物理封装 0 的内核 0 上.这就表示逻辑处理器 0 和 4 支持超线程(HT)技术.相同的工作可用于封装 0 内核 1 上的逻辑处理器 2 和 6,封装 1 内核 2 上的逻辑处理器 1 和 5,以及封装 1 内核 3 上的逻辑处理器 3 和 7.此系统支持超线程(HT)技术,因为两个逻辑处理器共享同一个内核.有两种方式可以确定是否支持多内核.由于内核 0 和 1 存在于封装 0 上,而内核 2 和 3 存在于封装 1 上,所以这是一个多内核系统.此外,cpu cores 条目为 2,也说明有两个内核驻留在物理封装中.这是一个多路系统,因为有两个封装.

      值得注意的是 physical id 和 core id 的编号可能是也可能不是连续的.系统上有两个物理封装并不罕见,而且 physical id 等于 0 和 3

通过physical id来判断,硬件的CPU Socket到底有几个,即按照插槽来计算的CPU
个数,如果你的是两个四核CPU,那么physical id应该是0和1;
通过sibling来判断,一个socket上的CPU是否是双核或者超线程:

如果sibling是2,而后面的cpu cores也是2,那么这个CPU则是双核;
如果sibling是1,而后面的cpu cores若是1,那么这个CPU是单核但支持超线程;
如果sibling是4,而后面的cpu cores也是2,那么这个CPU则是双核且每个核都支
持超线程;
如果sibling是4,而后面的cpu cores若是4,那么这个CPU是4核但不支持超线程

core id通常表示在一个CPU Socket上物理核心的id编号。
Tags:

Mysql对large page的支持

[ 2010/01/25 11:16 | by selboo ]
    在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TLB Miss 和缺页中断,从而大大影响应用程序的性能。当操作系统以 2MB 甚至更大作为分页的单位时,将会大大减少 TLB Miss 和缺页中断的数量,显著提高应用程序的性能。这也正是 Linux 内核引入大页面支持的直接原因。好处是很明显的,假设应用程序需要 2MB 的内存,如果操作系统以 4KB 作为分页的单位,则需要 512 个页面,进而在 TLB 中需要 512 个表项,同时也需要 512 个页表项,操作系统需要经历至少 512 次 TLB Miss 和 512 次缺页中断才能将 2MB 应用程序空间全部映射到物理内存;然而,当操作系统采用 2MB 作为分页的基本单位时,只需要一次 TLB Miss 和一次缺页中断,就可以为 2MB 的应用程序空间建立虚实映射,并在运行过程中无需再经历 TLB Miss 和缺页中断(假设未发生 TLB 项替换和 Swap)。
为了能以最小的代价实现大页面支持,Linux 操作系统采用了基于 hugetlbfs 特殊文件系统 2M 字节大页面支持。这种采用特殊文件系统形式支持大页面的方式,使得应用程序可以根据需要灵活地选择虚存页面大小,而不会被强制使用 2MB 大页面。

在mysql中,innodb可以使用large pages来分配buffer pool跟additional memory pool.
下面来看下mysql使用large pages具体的实现方法

1:查看系统是否支持huge-pages
cat /proc/meminfo | grep -i huge
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugepagesize有值,说明系统支持large pages(如不支持,系统需要重新编译来支持)

2:配置
把配置写入到/etc/sysctl.conf 然后sysctl -p使其生效
vm.nr_hugepages=200 (大页面的页数)
vm.hugetlb_shm_group=1001(需要使用大页面的用户id 可用id mysql 来查看mysql的ID)
kernel.shmmax=536887296
#kernel.shmall=524288

3:如需使mysql使用large pages,还需设置max locked-in-memory的大小
用ulimit -a(或者ulimit -l)来查看 max locked memory       (kbytes, -l) 32
vim /etc/security/limits.conf
mysql            soft    memlock      3145728
mysql            hard    memlock      3145728
或者用ulimit -l 3145728来设置,

4:vim /etc/mysql/my.cnf
添加large-pages,使得mysql 支持large-pages

5:启动mysql。
在启动mysql的时候,最容易报的错误是:
InnoDB: HugeTLB: Warning: Failed to allocate 138412032 bytes. errno 12
InnoDB HugeTLB: Warning: Using conventional memory pool
这是由于上面配置的两点所致。
1)nr_hugepages 的值*2M应大于(innodb_buffer_pool_size+innodb_additional_mem_pool_size)因为以上谈到innodb可以使用large pages来分配buffer pool跟additional memory pool.
2)memlock 的设置,在启动mysql时,一定要先查看用ulimit -a 来查看max locked memory 设置是否合理,可以尝试用以上两种方法来设置该值。还有一点,/etc/security/limits.conf配置文件的修改,可能无法通过ssh来查看,故也不能用ssh来启动mysql。
Tags:
       qq远程协助时发现屏幕倾斜。

点击在新窗口中浏览此图片

原因是因为双方的分辨率不同造成的。修改相同的分辨率就可以了。
Tags:
分页: 54/186 第一页 上页 49 50 51 52 53 54 55 56 57 58 下页 最后页 [ 显示模式: 摘要 | 列表 ]