降低Linode disk io rate的一个可行方法

最近老是收到Linode Alert – disk io rate邮件提醒,如下:

Your Linode, linodexxxxxx, has exceeded the notification threshold (1000) for disk io rate by averaging 1714.41 for the last 2 hours. The dashboard for this Linode is located at:

This is an automated message, please do not respond to this email. If you have questions, please open a support ticket.

You can view or change your alert thresholds under the “Settings” tab of the Linode Manager.

This is not meant as a warning or a representation that you are misusing your resources. We encourage you to modify the thresholds based on your own individual needs.

虽然网上有人建议,直接在后台关闭提醒或者提高触发提醒的值,比如最高可以跳到10000,但是觉得这总不是解决的办法。

我装的是ubuntu系统,通过iotop,这个命令发现频繁读写的就是 php-cgi — /usr/local/php/etc/php-fpm.conf这个进程,本来是想是不是wordpress的一些插件导致的,停掉了一些可疑的插件,结果还是很高。后来突然意识到,既然是php的配置问题,何不升级php版本试一下。我安装的是lnmp0.9,于是按照提示将php版本升级到了5.3.22,将Nginx也升级到最新的版本1.2.7,升级完之后进入linode的控制后台,发现disk io rate已经降低到两位数了,大喜!呵呵。

linode io rate

 

红圈是升级后的图形

如果你也遇到linode io rate高的问题,不妨试一下这个方法。

Linode VPS如何搭建FTP服务

后台一直提示wordperss版本和插件有更新,看着碍眼,决定把它们全都更新。不过更新文件需要服务器提供FTP服务,linode也没有提供到FTP,只能自己装一个了。我装的服务器系统是Ubuntu 12.04 LTS,FTP软件当然是选择大名鼎鼎的vsftpd(very secure FTP daemon), 用系统自带的FTP还好Ubuntu装vsftpd还是很简单,一句命令就行:

1. 安装 vsftpd 服务

[root@chenjunlu ~]# yum install vsftpd

2. 配置 FTP 用户

[root@chenjunlu ~]# usermod -d /srv/www/chenjunlu.com/htdocs/ -s /sbin/nologin

3. 配置 /etc/vsftpd/vsftpd.conf 文件

# Allow anonymous FTP ?
anonymous_enable=NO

# Uncomment this to allow local users to log in.
local_enable=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

# Default umask for local users is 077. You may wish to change this to 022,
local_umask=022

chroot_local_user=YES
chroot_list_enable=YES
# If chroot_local_user is YES and chroot_list_enable is YES, then this list
# becomes a list of users to chroot().
chroot_list_file=/etc/vsftpd/chroot_list

# If userlist_enable is YES and userlist_deny is YES, then this list
# becomes a list of users who can login.
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

4. 启动 FTP 服务

[root@chenjunlu ~]# service vsftpd restart

5. 配置开机自启动

[root@chenjunlu ~]# chkconfig vsftpd on

如果你对安全性有很强的敏感性,我建议你配置 FTPs 服务,具体的配置方法请参考这里。虽然说 vsftpd 的全名是”Very Secure FTP Daemon”的意思,也就是说是比较注重安全的 FTP 服务器,但是出于慎重的考虑,我建议还是配置一下防火墙,或者说不配置开机自启动,只在需要的时候再开启服务。

Linode VPS磁盘加量20%

Linode在2012年圣诞节到来之际,特别推出:所有的VPS,不管新旧,磁盘容量均加量20%。
磁盘配置加量具体如下:

Linode 512 从 20GB 升到 24GB
Linode 1GB 从 40GB 升到 48GB
Linode 2GB 从 80GB 升到 96GB
Linode 4GB 从 160GB 升到 192GB
Linode 8GB 从 320GB 升到 384GB
Linode 12GB 从 480GB 升到 576GB
Linode 20GB 从 800GB 升到 960GB

不少人抱怨linode的磁盘容量比较小,现在终于可以微笑一下了,虽然只是20%,也是好几个G啊,支持linode,希望以后逐渐加一点,呵呵。

Linode 512方案vps优化

512内存的VPS是linode里面配置最低的一种,所以官方也给出了针对这个套餐的性能优化方案,这是官方的教程。本文对其进行了翻译,希望能帮到大家。

MySQL使用默认配置的时候会消耗大量的内存。你需要编辑MySQL的配置文件来设置内存使用限制。下面是如何优化MySQL的一个的Linode512:

注意:这些参数是用来优化512内存VPS的MySQL,如果你用了更大的内存,可以对这些值进行修改,同时仔细观察内存和性能问题。

1、找到Mysql的配置文件:

/etc/my.cnf

我用的是lnmp一键安装包,mysql的配置文件可能跟你们的不一样,请自行寻找。

2、修改以下参数:

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

如果没有的请自行添加。

3、如果你不使用InnoDB表,就在文件底部禁用InnoDB:

好了,接下来优化一下Php的设置吧。

你安装PHP后,你需要开启日志并调整相关设置来确保更好的性能。这里,你需要最重视的是 memory_limit这个参数,它控制了分配多少内存给PHP。下面是如何启用日志记录和优化PHP的性能:

1、首先自然是找到Php的配置文件啦:

/usr/local/php/etc/php.ini

2、确保以下的参数已经设置好,主要要去掉前面的注释符号“;”

max_execution_time = 30
memory_limit = 64M
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
register_globals = Off

注意:这里的64M设置对大部分站点都适用,如果是更大的站点,你需要改成128M或者更大。

保存好配置文件后,重启相应的服务即可。

如何对linode多个vps进行分组

对于拥有多个linode vps的基友来说,分组管理更加容易,首先进入linode manager,点击任意一个vps的名称,进入其管理界面:

如上图,在setting菜单页面中,有一项:Display Settings,其中Linode Label是vps的显示别名,用于区分多个vps;Display Group则是vps分组名称,如果多个vps填写同一个“组名”,它们将会被显示在同一个分组下,用于区分多个vps,结果如下图:

如何让Linode不再扣费及删除linode账户

如果你不想继续使用linode了,不想让linode继续扣费了,那应该怎么办呢?那就是删除vps。

在linode manager首屏的linode vps列表中,选择要删除的vps,点击后边的 remove 链接,进入下一步。

系统会提示你是否确认删除,选中多选框即为确认。同时系统也会提示你,在删除该vps后,会退给你多少钱。最后点“Remove this Linode”按钮,就删除了该vps,并将剩余退款拨付到你的linode账户里,用于日后重新购买使用。

如此一来,linode将不会自动扣款或收取费用,同时你还将在linode中保留这个账户,用作日后使用。

如果你不打算保留这个账户,并且打算将账户中的余额退还到自己的信用卡中,一定要先删除vps,等钱返回账户后,在跟客服联系,说明你想退款: i want to make a refound.然后客服回复后,等待10天左右即可。

也删除vps了,也退款了,如果你觉得这个账户没有继续存在的必要,那么可以在account选项卡页面的最底部,找到“Cancel this Account”链接,点击即可。

Linode VPS (LAMP+VPN)配置

由于Linode 是基于 Xen 虚拟化的 VPS 。 这相当于买了一台裸机、因此要想能用,得经历装系统、装软件、配置等一系列的过程。

一、基础运行环境

1、选择数据中心

2、安装 Linux 内核操作系统,我选择了玩CentOS 5.5

3、启动系统

4、ssh、sftp登陆管理、安装系统安全补丁

5、系统设置 ( 主机别名、时间等)

二、CentOS 5 下 AMP  ( Apache + MySql + PHP ) 网站服务器工作环境搭建

1、安装/配置 Apache Web Server

安装 Apache :
yum update
yum install httpd

备份 Apache 配置文件 :
cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup

配置虚拟主机 :
vi  /etc/httpd/conf.d/vhost.conf

NameVirtualHost VPS IP :80

<VirtualHost domain.com:80>
ServerAdmin domain@domain.com
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /srv/www/domain.com/public_html/
ErrorLog /srv/www/domain.com/logs/error.log
CustomLog /srv/www/domain.com/logs/access.log combined
</VirtualHost>

创建文件夹 :
mkdir -p /srv/www/domain.com/public_html
mkdir -p /srv/www/domain.com/logs

启动 /重启Apache:

/etc/init.d/httpd start
/etc/init.d/httpd reload

配置设置为开机启动 :
/sbin/chkconfig –levels 235 httpd on

2、安装/配置 MySQL

安装 MySQL

yum install mysql-server

配置设置为开机启动 :
/sbin/chkconfig –levels 235 mysqld on

启动/重启 MySQL

/etc/init.d/mysqld start
/etc/init.d/mysqld reload

配置MySQL / 建立数据库

mysql_secure_installation (注意修改密码、删除示例)
mysql -u root -p (登入)
create database lollipop; (创建)
grant all on lollipop.* to ‘foreman’ identified by ’5t1ck’; (赋与权限 / 用户名、密码创建)
quit (退出)

3、安装/配置 PHP

安装PHP

yum install php php-pear

配置PHP

vi /etc/php.ini

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off

安装 PHP5-Mysql 包

yum install php-mysql

4、至止,已经可以通过 IP 访问了 , 只需修改域名 A/CNAME 记录,即可实现网站在 VPS 上面的托管

Tips :

Apache 设置中控制直接 IP 访问显示所需内容的方法 : 设置一个servername是本机IP地址的虚拟主机

<VirtualHost 220.110.4.5:80>
ServerName 220.110.4.5
DocumentRoot /var/www/html/
</VirtualHost>

三、WordPress 安装 (不解释)

cd 虚拟主机目录

wget http://wordpress.org/latest.zip

unzip latest.zip

alias cp=cp

cp -rf wordpress/* .

rm -rf wordpress/ latest.zip

惯例配置 wp-config.php

四、CentOS 5 下 PPTP VPN 服务器安装配置 (32 位版本的安装命令行、不解释)

yum install -y ppp iptables

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

vi /etc/pptpd.conf
localip 192.168.0.1 (去注释)
remoteip 192.168.0.234-238,192.168.0.245 (去注释)

vi /etc/ppp/chap-secrets
username pptpd password *

vi /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

vi /etc/sysctl.conf
net.ipv4.ip_forward=1 (一般默认为0,修改为1)

sysctl -p

/etc/init.d/pptpd restart

/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

chkconfig pptpd on chkconfig iptables on

以上为CentOS 5 32位系统 PPTP VPN 服务器安装代码无解释版本。

Tips 1 :

部分特定的网站可能会无法正常访问。比如我无法访问 fc2.com alexa.com 等。通常出现这个问题是 MTU 问题。

解决方案 : 修改ppp接口的MTU

vi /etc/ppp/ip-up

在倒数第二行加入如下内容: /sbin/ifconfig $1 mtu 1400

service pptpd restart

Tips 2 : xen 服务器重启后、VPN可能登陆,但是无法收到数据包

解决方案 : 重新 设置 iptable 、重启pptpd

/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

/etc/init.d/pptpd restart

五、CentOS 5 下 FTP (vsftpd)安装、配置

1、安装
yum -y install vsftpd

2、启动
service vsftpd start

3、随开机启动
chkconfig –level 35 vsftpd on

4、查看 VPS 正在监听的端口
netstat -tl

5、禁止匿名用户
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO

6、设定 ftp 目录
chgrp -R ftp   /home/wwwroot
chmod -R 777  /home/wwwroot

7、增加 ftp 用户
adduser –d /home/wordpress –g ftp –s /sbin/nologin usersx
passwd usersx

8、重启 ftp
service vsftpd restart

9、用户管理
userdel 选项 用户名 #删除用户
常用的选项是-r,它的作用是把用户的主目录一起删除。
passwd 选项 用户名 #修改口令
passwd -l 用户名 锁定口令,即禁用账号。
passwd -u 用户名 口令解锁。
passwd -d 用户名 使账号无口令。
passwd -f 用户名 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
如果是超级用户,可以用下列形式指定任何用户的口令:
passwd 用户名
passwd -d 用户名 此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令

Linode安全:怎样修改SSH默认端口

入手linode vps之后,就是相关的设置,其中安全设置就是十分重要的,SSH服务是远程管理Linux最基础的服务,默认使用的是TCP的22端口。但是,默认端口太招风了,查看log可以看到每天有很多的扫描器试图来硬暴力破解密码,这样的话,使用弱口令的朋友们有一些会中招了。

那么如何提高ssh的安全性呢?完全禁用SSH是不可能的,暂时还找不到可以替代的软件,目前来说最行之有效的方法是修改ssh的端口号,把22端口改到任意一个端口,这样的话,可以躲过网络上很多扫描器的扫描,安全性提高不少,还能减少因此带来的安全日志的增大。

下面以我的这台VPS说明如何修改默认SSH端口

环境:centos 6.0

如何修改SSH默认端口

1、SSH的配置文件保存在:/etc/ssh/sshd_config中。

你只要使用Vi或者其他可视化编辑器,修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了(例如2222,1234之类的),不过千万别设和现已有的端口相同哦。

2、如果开启iptables的话,开需要先开启您刚才修改后的新端口,防止改了后就登不上了。

1234为端口号,这是您上一步自己定义的新端口

iptables -I INPUT -p tcp –dport 1234 -j ACCEPT

service iptables save

service iptables restart

3、重新启动SSH服务生效配置

service sshd restart

之后ssh的默认端口就修改成功了。使用Putty使用ssh连接VPS的时候,请在端口处填写新的端口即可连接成功。

如何在iPhone上管理Linode VPS

Linode的后台管理功能强大是很多人赞的,而且Linode为用户考虑的很周到,它的VPS不仅可以通过网页在线管理,也可以通过Linode的iPhone客户端管理,非常方便。这样,无论您在哪里,您只需要一部连接网络的电话,可以轻松实现移动化地管理VPS。

Linode的iPhone客户端功能

用iphone管理linode

支持多账户

可以在iPhone上shutdown、reboot您的VPS
可以任意修改配置,重装系统
可以监控VPS运行状态例如CPU和IO信息,以图表显示

管理您的DNS(在Linode上托管的)

APP下载地址:http://itunes.apple.com/us/app/linode-manager/id352861751?mt=8

对于Android也能实现管理,不过工具不是官方提供的。请到

https://market.android.com/details?id=com.linode.android

下载,基本功能与官方iOS版本无差别。

Linode for iPhone客户端功能预览

1)打开后,首先就提示登录,需要您的Linode账户名密码,支持子账号登录。

2)登录后,选择您账号中的VPS主机点开进行管理

3)这里是主界面,显示当前VPS运行状态信息

4)最实用的功能-查看当前VPS资源使用情况

这是我认为Linode APP最好的功能,在这里您可以查看Linode各项资源指标,及时发现异常。确保VPS健康的运行。

Linode Manager能实现的功能还有很多,如在Disk Images可以重装系统,切换系统内核等。

如果您手头有iOS设备(iPhone、iPad、iPod touch)的话,不妨尝试一下。

Linode基础设置中注意的几个细节

Linode安装完系统后和必要的组件后,并不是所有的事都做完了,如果下面的几个细节你没有完成的话,将会在使用中遇到一些麻烦:

1.设置ftp自动运行

这一步是必需的,否则一旦VPS重新启动,FTP将无法直接登录。如果你几周以后Reboot了系统,忘了FTP不能自动运行,导出找原因会找到死。

执行如下命令使开机启动:

cat >/etc/init.d/pureftpd.sh<<eof
/root/pureftpd start
eof
update-rc.d pureftpd.sh defaults

2.设置目录写入权限

之前我们的操作是以root账户完成的,所有文件/文件夹的所有者都是root。如果保持这个状态,之后我们将无法以ftp账户的名义执行很多操作——比如任何形式的写入;同样,Wordpress等程序也无法上传附件。

chown -R www /home/wwwroot

chown指令将后面的目录的所有权限指派给了www用户。在前面设置ftp你已经将ftp账号的uid和gid设置成www组了。至此,一个Wordpress的环境设置结束,可以“自豪的使用Wordpress了”。

3.设置可用的rewrite伪静态规则

网上有很多Nginx的rewrite伪静态规则笔记。在我的实践中发现,大多不能用——不仅仅没有效果,有可能连累系统无法运行。rewrite设置得我几欲放弃,已经甘心宁愿用“?p=**”的传统默认链接了,最后一试成功了。下面的代码可以直接解决单域名单一目录或多子目录(多Wordpress,比如kangjian.net)的伪静态rewrite问题:

vim usr/local/nginx/conf/wordpress.conf

单一目录rewrite伪静态规则:(根据WP所在目录改写/blog部分)

location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}

多个wordpress程序,多个子目录:(根据WP所在目录改写/blog和/paste部分)

location /blog/ {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}
location /paste/ {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /paste/index.php;
}
}

改写完wordpress.conf,执行下列语句重新启动Nginx的web环境:

/usr/local/nginx/sbin/nginx -s  reload