显示标签为“互联网”的博文。显示所有博文
显示标签为“互联网”的博文。显示所有博文

2011年11月23日星期三

Sina App Engine(SAE)中的Mysql服务限制说明

Mysql服务概要

SAE平台为每个App支持几乎所有MySQL的特性。目前支持MyISAM引擎,暂不支持InnoDB。需要注意的是SAE的数据库需要显式开启或者禁用。您还可以通过phpmyadmin来创建数据库和数据表。SAE的PHP环境提供了标准的MYSQL,MYSQLI和PDO模块(基于MySQLnd),您可以直接使用这三个模块来操作您的数据库, 您可以使用预定义常量来连接数据库,我们不排除未来可能调整数据库端口,使用预定义常量能够避免这样的问题。当然SAE也提供了SaeMysql类,我们也推荐您使用这个类来操作MySQL资源。

服务限制














































































限制 相关错误信息 数值
单表的最大行数 Table too many rows 10 000 000 行
库的最大表数量 Too many tables 512个
不支持的存储引擎类型 Not support table type memory temporary
最大外排序的行数 Filesort on too many rows 65536 行
最大无索引的操作行数 无 100 000 行
查询的最大操作行数 Select on too many rows 1 000 000 行
更新的最大操作行数 Update on too many rows 1 000 000 行
删除的最大操作行数 Delete on too many rows 1 000 000 行
创建索引时允许的表的最大行数 Create index on big table 500 000 行
修改表结构时允许的表的最大行数 Alter table on big table 500 000 行
SQL并发执行时间和(读库) Operations take too much time cost 500 000 毫秒
SQL并发执行时间和(写库) Operations take too much time cost 200 000 毫秒
警报阈值百分比 无 80%
表主键及聚簇索引奖励系数 无 1024 倍


MySQL慢查询配额

SQL执行时间超过1秒,即为慢查询,其分钟配额为
条目数 10
累计执行时间 30秒
扫描行 1,000,000

分钟配额
运行在SAE上的应用(App)将会消耗平台资源,为保证各App不互相影响,我们引入了分钟配额的概念,即:在每分钟内每个应用的各个服务所消耗的 资源的速度。比如,当平台中的某个应用的MySQLl服务一分钟内累计请求数达到20万,或者流出宽带超过600M,或者累计CPU执行时间超过400s,我们将会立即禁掉该应用的MySQL服务,禁用五分钟后,恢复会自动恢复,避免影响到SAE平台的稳定性。服务因为超过“分钟配额”而被禁用时,会在“服务状态”看到该服务被禁用的原因。

注意:表中红色配额值是自2011-11-3号,即SAE两周年起开始执行的新配额值,旧配额值将不再采用。





































































































服务 请求数 cpu时间 流入流量 流出流量
HTTP 200,000=>500,000 300s=>600s 300MB=>1500MB 300MB=>1500MB
HTTPS 50,000=>1,000,000 50s=>100s 10MB=>100MB 10MB=>100MB
MySQL 200,000 400s=>600s 300MB=>600MB 600MB=>1200MB
Memcache 300,000 NA 150MB=>300MB 150MB=>300MB
Fetchurl 50,000=>100,000 NA 100MB=>200MB 100MB=>200MB
Image 5,000 300s 150MB 150MB
Storage 5,000 NA 50MB=>80MB 400MB
Mail 50=>500 NA 20MB 20MB
Cron/offset 50 50s 1MB 1MB
Cron/nooffset 200 30s=>60s 5MB 5MB
TaskQueue 20,000=>40,000 60s=>100s 10MB=>20MB 10MB=>20MB
VerifyCode 100 4s 2MB 2MB
KVDB 150,000=>300,000 NA 150MB=>300MB 150MB=>300MB


容量配额

容量配额是针对MySQL\Storage\MemCache设置的,是指用户能够使用的磁盘或内存的最大限制(见下表),其中Memcache的最大容量配额是用户自己在初始化Memcache时设置的,可设置的范围是1M~256M。
服务 配额
MySQL 5G
Storage 10G*
KVDB 100G
*每个App允许建立5个Storage domain 每个domain为2G

2011年11月15日星期二

查看全国各地天气实况信息(2011年11月25日更新)

每天我们都会从各种渠道获取天气预报信息,比如电视、手机短信、互联网查询等。我们也经常发现气象预报与实际的天气会有一些差异。那么每天是否有人工观测的天气实况信息呢,答案是肯定的。

全国有几千个气象观测站,很多观测站是每隔3小时都会有人工去观测一次,记录观测时的实际天气状况、气温、气压、刚过去几小时的天气状况、能见度等信息。

现在你可以通过下面的网站来查看这些信息:全国各地天气实况

全国各地天气实况

这个网站将现在全国各地的天气实况记录信息显示在地图上,移动地图即可查看各地天气实况。

有时我们也希望查询过去某天的实际天气状况,比如一个月前是什么天气。随后将推出查询过去天气信息的功能。
-----------------------------------------------------------------------------------------------
已添加2010年11月到现在全国各地区的观测数据。现在你可以在这个网站上查询一年内任意一天的观测数据。

2011年8月12日星期五

php 用header下载文件

你希望客户要填完一份表格,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:

一 下载当前服务器文件


$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}


二 下载远程文件
而如果文件路径是"http" 或者 "ftp" 网址的话,则源代码会有少许改变,程序如下:

$file_name = "info_check.exe";
$file_dir = "http://www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}


这样就可以用PHP直接输出文件了。

三 一般情况只需要三条语句即可

header ('Content-type: application/'.$file_ext);
header ("Expires: 0");//可选
header ("Pragma: no-cache"); //可选
header ('Content-Disposition: attachment; filename='.$file_name.'');
header ("Content-Length: ".$file_size); //可选
readfile ($file_name);


原文链接:http://lhdeyx.blog.163.com/.../31819697200983010224884/

2011年8月9日星期二

在XP及Ubuntu上快速安装及配置LAMP(Linux+Apache+Mysql+Php/Perl/Python)环境

Ubuntu 快速安装LAMP环境及配置方法:




一、安装LAMP环境
在终端输入以下命令(是的,你没看错,只用一条命令即可)

sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql

安装过程中会要求你设置MySQL的帐户root密码,暂时可以直接回车,不设置密码

二、配置LAMP环境
Apache2默认安装在/etc/apache2目录下
打开用户配置文件:

sudo gedit /etc/apache2/httpd.conf


添加下面的一行来启用php文件类型支持:

AddType application/x-httpd-php .php .php5

至此LAMP已可以正常运行 网站目录默认在 /var/www

三、其他可选配置
1>apache 的配置文件路径 /etc/apache2/httpd.conf
2>php.ini 路径 /etc/php5/apache2/php.ini
3>mysql配置文件 路径 /etc/mysql/my.cnf
4>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf
5>网站根目录配置文件路径 /etc/apache2/sites-enabled






XP 快速安装LAMP环境及配置方法:




一 安装及配置Apache

1.打开网页 选择合适的版本下载
http://httpd.apache.org/download.cgi

2.xp下双击安装包,直接安装
ubuntu下安装说明见 apache.org/docs/2.2/install.html

3.打开conf/httpd.conf 进行配置

#配置网站所在的文件夹
DocumentRoot "D:/webdocs"


#配置网站文件夹的属性


#当文件不存在时不要列出目录中的文件列表
Options -Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# 控制对此目录的访问权限
#
Order allow,deny
Allow from all




二 安装及配置Mysql
Ubuntu下安装过程见此文 ubuntu 10.04 MySQL 5.5.11 源代码编译安装
XP下可直接下载安装包

三 安装及配置PHP

1.下载 the PHP zip binary distribution from » PHP for Windows: Binaries and Sources.

选择 VC6 x86 Thread Safe 版本

2. 直接解压后放在softs文件夹下即可

3. 在安装目录中另存 php.ini-production 为 php.ini 并进行配置

a.设置模块目录并开启需要的模块

; Directory in which the loadable extensions (modules) reside.
; 此项设置模块所在的目录,注意如果path变量没有设置php安装目录时
; 此项一定要设置为绝对目录,否则Apache将无法正确加载php扩展模块
extension_dir = "D:/softs/php-5.2.17/ext/"

以上设置不正确时将会出现类似下述错误信息

PHP Warning: PHP Startup: Unable to load dynamic library './ext/php_bz2.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library './ext/php_curl.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0


b.设置可最大上传文件的大小和默认时区等选项

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Chongqing


4.打开apache 的 conf/httpd.conf 进行配置

# 让apache自动在每次启动时加载php模块. apache2.2 版本需要加载php5apache2_2.dll
LoadModule php5_module "D:/softs/php-5.2.17/php5apache2_2.dll"
AddHandler application/x-httpd-php .php

# 配置 php.ini 文件所在路径
PHPIniDir "D:/softs/php-5.2.17"


5.重启计算机

----------------------------------------------------
今天调试网页时发现apache服务器经常自动重启,打开error.log文件后发现下述信息

[Sat Aug 20 19:43:25 2011] [notice] Parent: child process exited with status 3221225477 -- Restarting

在网上查找一番后发现原因是php文件中包含了数据库查询语句,而apache调用了与当前版本不一致的libmysql.dll 所致。
由于安装的mysql 数据库是早期版本,在安装mysql后程序自动设定mysql安装目录为PATH环境变量。mysql安装目录下含有版本不一致的libmysql.dll 文件,apache调用了那个不合适的文件后产生错误。

而在安装php时并没有将php目录设定为PATH环境变量。

解决办法:删除mysql安装目录里面的libmysql.dll 文件,然后将php安装目录设置为PATH环境变量即可。

2011年3月21日星期一

短信发送编程接口(飞信API搁浅…)

给大家推荐一个极好用极稳定支持向移动、联通、电信的任意手机号码发送短信的商业服务:推立方
它的发送短信的API也十分简单好用,详见:www.tui3.com/page/smssend

飞信的限制太多了,只能向自己的好友发送短信,而且现在根本没有稳定的接口。所以你可以不读下面的文字。
---------------------分割线-------------------------------------

原文链接:飞信API搁浅…

以前只听说飞信是有API的,经多方查证,其实中国移动飞信并没有像Twitter一样放出API供大家开发使用.

民间存在的一些API均为第三方破解飞信文件然后自己制作的,需经非中国移动飞信服务器中转,基本原理为在URl中传递手机号与密码至第三方服务器,并用一些手段判断手机号与密码是否合乎规定,然后由第三方传递至官方服务器,返回的结果再由第三方间接返回.

这种通过URL传递敏感信息的方式,安全性不言而喻.放下安全性不论,第三方服务器的稳定性也有待验证.加入了这样一个功能产品做出来,不仅有可能泄漏用户的敏感信息,而且连用户是否得到能服务都无法保证.

其实这中间还有一些问题,首先,信息只能在中国移动的手机之间传递,这就限制了一部分用户,然后,发送信息的双方必须是好友,这对某些没有用过飞信的用户来说就是一个挺不小的障碍(教育工作者不知道用的多不多),接下来,我们发信息输入的是对方的手机号(极少有人用飞信号吧…),然而2009年12 月9日中国移动飞信服务器升级,变更了登录地址和部分协议,升级后的协议无法直接给接收方手机号发送短信,只能给飞信号和自己的手机号发送短信,于是第三方就要增加将手机号转换为手机号飞信号的功能(手机号–用户ID–飞信号).
假如……上面这些都不是问题……

中国移动又发飙了…

2010年7月25日(才刚没多久啊),中国移动飞信停止了对低版本PC客户端提供支持,这一举动直接导致几乎所有第三方API无法使用(几乎所有API均在此日期前发布).

飞信停用低版本PC客户端公告:feixin.10086.cn/bulletin/2493/1

经测试不能使用的API中包括传说中由 Google App Engine 强力驱动的

https://fetionapi.appspot.com/
fetionlib.appspot.com

以及由雅虎运营的

pipes.yahoo.com/daibin/fetion

另外,在搜索排行中非常靠前,同样获取一片好评的:

sms.api.bz

sms.yicker.com

至此,目前几乎我能测试的飞信API都不能用了,据说sms.api.bz已经在2010年8月3日恢复正常,经测试,至发表之时仍没有收到所发的信息,假设它已经可以使用,发送与接收之间的延时也使它变得没有使用价值.

至于网友调侃的自己看下串口编程 和AT指令,手动封装DLL,可行性为零,不予考虑.

结论:飞信API陷入窘境,只能期待旧的API被修补或新的第三方API出现…中国移动放出官方API,哈哈,daydream.

个人怨念:

不禁要感慨一下中国现在的业界,一切都被利益驱使,有360与腾讯,金山等之间的纠葛便可一窥,加入大家都学学Facebook,Facebook一直在改动特性和接口,然而却并没有把广告收益看作是最终目的,而是借用广告收益来扩展其他服务,对Facebook公司而言,“让世界更加开放和连结”,这是它的箴言.Facebook向世人提供了一个广阔的平台,希望人们借助这一平台提高效率.所以,Facebook所做出的决定并不是短期的金钱目的,而是为更多用户扩展服务,Facebook的员工毫无掩饰地描绘公司的目标就是:”无处不在”,中心希望国内的公司也能有这样的企业目标.

-----------------以下为个人增加内容-----------------------

目前可用的web版飞信有:
1.官方web飞信:https://webim.feixin.10086.cn
2. sms.bber.info ,随后可能放出API

另外据报道中国移动计划开放飞信平台,4月底公测,6月底正式发布。

2009年12月14日星期一

WebQQ 无需密码 解除锁定

在浏览器地址栏输入以下代码,然后按回车键。


javascript:WEBQQ.cls.MainPanel.prototype.instance.unlockQQ();

2009年11月26日星期四

准备做一个天气图片比较程序

用江苏的图片资料,前台DIV+CSS+Javascript+Jquery设计。实现图片浏览,多张图片对比等功能。