随着互联网的发展,云计算上的兴起,云主机被推上了风头浪尖,服务商在中国也不止一家,但有选择其实和没得选择,对很多人来讲,一样有难度,如何选择云主机呢?
1 性能保障
云主机的性能虽然没有同意的测定标准,但是可以通过其他途径侧面了解:首先,服务商的云主机不能是传统的VPS冒牌的,这个通过查看操作系统上同时登陆的用户和对硬件的访问权可以知道。其次,云主机的内存不能使共享或者动态变化的。内存动态变化,要么是VPS,要么是内存不同的云主机共享。
最后,但也是很重要,云主机的磁盘IO要有保证。有的云主机磁盘读写只有几MB/s的性能,会导致访问量增加后响应速度立即大幅下降。另外,如果服务商能对CPU能力做出明确的说明和限定,则CPU能力更有保障。
2 宽带质量
云主机的带宽质量无疑是影响网站或应用响应时间的重要因素。服务器性能、程序架构、带宽质量,基本决定了网站的响应速度。现在带宽种类很多,有双线、单线、多线、BGP,客户应当根据自己的用户覆盖范围合理选择机房位置。通常来说,双线、多线、BGP适用于覆盖全国的应用。带宽质量,主要由丢包率、平均响应时间来决定,对攻击的抵抗能力也是一个参考标准。
3 性价比
客户考虑云主机租用的一个重要原因是其性价比通常高于传统IDC服务,当然便利性等其他因素也是客户多看重的。需要注意的是这里考察的应该是性价比,而不是单纯的价格。不是价格越低越好,而是看同样的配置和性能保证,在不同的服务商那里需要花多少钱。另外需要注意的是,要考察整体价格,不能使起步价格和部分价格。
4 IDC运营经验
云主机服务商应该有一定的IDC运营经验。因为云主机是IDC业务的扩展或者升级,所以没有IDC运营经验的团队,可能会出现一些低级的失误,或者不能处理一些突发状况。IDC运营经验通常不是一朝一夕获得的,一般需要多年的积累。
5 研发能力
云主机租用服务器是应用新技术于IDC行业的服务,其背后需要有一个合适规模的研发团队。这个团队需要能解决基本的功能问题,也需要能够开发出管理大规模基础设施、大量用户的自动化的管理系统。这样才能保证用户的体验,才能不断将运营管理能力转化为客户可以享受到得服务。
6 资质和备案服务
云主机服务属于基础电信增值服务,所以其服务商需要获得国家的资质审批。如果没有电信增值服务资质,随时会被有关部门叫停,自然会影响到所有的客户。而服务商对国家政策的理解,备案流程的支持,也是保证客户能够合法合规的基础。
月度归档:2014 年四月
Linux环境下进程之间的通信与同步
Linux系统上运行有多个进程,其中许多都是独立运行。然而,有些进程必须相互合作以达成预期目的,因此彼此间需要通信和同步机制。
读写磁盘文件中的信息是进程间通信的方法之一。可是,对许多程序来说,这种方法既慢又缺乏灵活性。因此,像所有现代UNIX实现那样,Linux也提供了丰富的进程间通信(IPC)机制,如下所示:
信号(signal):用来表示事件的发生。
管道和FIFO:用于在进程间传递数据。
套接字:供同一台主机或是联网的不同主机上所运行的进程之间传递数据。
文件锁定:为防止其他进程读取或更新文件内容,允许某进程对文件的部分区域加以锁定。
消息队列:用于在进程间交换信息(数据包)
信号量(semaphore):用来同步进程动作。
共享内存:允许两个及两个以上进程共享一块内存。当某进程改变了共享内存的内容时,其他所有进程会立即了解到这一变化。
UNIX系统的IPC机制种类如此繁多,有些功能还互有重叠,部分原因是由于各种IPC机制是在不同的UNIX实现上演变而来的,需要遵循的标准也各不相同。例如,就本质而言,FIFO和UNIX套接字功能相同,允许同一系统上并无关联的进程彼此交换数据。二者之所以并存于现代UNIX系统之中,是由于FIFO来自System V,而套接字则源于BSD。
10个有用的Linux命令行补齐命令
在Linux系统中,输入一个命令,再按两次TAB键,就会列出所有以输入字符开头的可用命令。这并不新鲜,很可能你已经知道了这个。这个功能被称作命令补全。默认情况下,bash命令行可以自动补全文件或目录名称。不过,我们可以使bash命令行补全执行更多的操作,通过补全命令可以让它成就下一个辉煌。
这个教程说明了我们是怎样使用可编程的命令行补全功能(programmable completion)把自动补全的功能应用于选项或者命令行参数。
例如:在输入write 命令之后,如果你按两次TAB按键,自动补全功能会提供执行write操作的列表。
$ write [TAB][TAB]
bala raj
jason randy
john ritu
mayla thomas
nisha www-data
在下面的例子中,输入telnet命令将会显示可用了主机名:
$ telnet [TAB][TAB]
localhost dev-db fileserver
要让可编程命令补全功能在你的终端起作用 ,你只需要执行/etc/bash_completion即可,就像下面展示出来的操作:
# . /etc/bash_completion
你也可以取消/etc/bash.bashrc(对于Ubuntu Linux 13.04系统)下面的注释,这样,你就可以不需要执行上面的命令了,
enable bash completion in interactive shells
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
如果你没有发现这些代码,也没有找到/etc/bash_completion文件,那么你只需要通过使用apt-get命令来安装bash_completion 包即可。
1、查看现有的bash补全命令
启用可编程的bash命令行补全功能,就可以定义一套bash补全命令。命令行补全可以用来定义bash补全命令。
来看一下现有的bash补全功能,使用完整的命令,如下:
complete -p | less
选项 -p 是可选择的。
2、Bash中标准补全的列表
Bash为linux用户默认提供了下面的标准补全命令。
变量名补全(Variablename completion)
用户名补全(Username completion)
主机名补全(Hostname completion)
Path路径补全(Pathname completion)
文件名补全(Filename completion)
3、为获取命令定义补全命令
使用-c参数定义一个补全命令来获得可使用的命令列表。在下面的例子中,为which命令定义了补全命令,
$ complete -c which
$ which [TAB][TAB]
Display all 2116 possibilities? (y or n)
就像上面看到的,如果按”y”,所有的命令都会显示出来。
4、为获得目录定义补全命令
使用参数d,定义一个只获得目录名称的补全命令,下面的例子中,定义了ls的补全命令
$ ls
countfiles.sh dir1/ dir2/ dir3/
$ complete -d ls
$ ls [TAB][TAB]
dir1/ dir2/ dir3/
就像上面看到的,连续按两次TAB,就可以看到目录名称。
5、为获得后台作业名称获得补全命令
通过使用complete命令,把获得job名称作为参数是允许的。参数j用来把job名称作为参数传到命令行,展示如下:
$ jobs
[1]- Stopped cat
[2]+ Stopped sed ‘p’
$ complete -j ./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
cat sed