小编fly*_*sic的帖子

PHP按两个字段值排序数组

我有一个像这样的阵列

Array (
 [0] => Array( "destination" => "Sydney",
               "airlines" => "airline_1",
               "one_way_fare" => 100,
               "return_fare => 300
       ),
 [2] => Array( "destination" => "Sydney",
               "airlines" => "airline_2",
               "one_way_fare" => 150,
               "return_fare => 350
       ),
 [3] => Array( "destination" => "Sydney",
               "airlines" => "airline_3",
               "one_way_fare" => 180,
               "return_fare => 380
       )
)

我如何通过return_fare asc,one_way_fare asc对值进行排序?

我试过array_multisort()但我最终得到了混合数据..

asort仅适用于一维数组,我需要按两个值或更多值排序,我如何在SQL中实现这一点,按field1 asc,field2 asc排序?

php arrays sorting

64
推荐指数
5
解决办法
6万
查看次数

crontab与wget - 为什么它运行两次?

我有一个php脚本,它从webservice运行并插入到DB.

crontab -e

......other cron tasks above.......
...
..
..
# Run test script.php at 1610
10 16 * * * /usr/bin/wget -q -O /home/username/my_cronjobs/logs/cron_adhoc http://localhost/project/script.php

显然,在16:10,这个脚本运行两次!16:10:01和16:25:02

是不是错了,必须使用wget?或者我是否错误地设置了cron作业的时间表?

当我从浏览器运行http://localhost/project/script.php时,它只运行一次..

关于这个问题的任何想法?

我已经测试过,没有其他用户运行相同的工作......我怀疑wget的工作方式.

正如我的脚本需要至少20分钟不回送一个应答来完成(它是从we​​bservicces拉了很多数据并保存到DB)..怀疑有一个超时或默认造成这个问题的wget重试的.

wget crontab

15
推荐指数
2
解决办法
3065
查看次数

使用EXPLAIN进行MYSQL存储过程调用

如何分析和使用EXPLAIN进行存储过程调用?我需要优化查询时间,但似乎没有我可以做EXPLAIN调用proc_name()?

mysql stored-procedures

13
推荐指数
3
解决办法
2万
查看次数

linux curl另存为utf-8

尝试使用linux curl从url下载xml文件.

很确定xml是用UTF-8编码的,

怀疑curl -o不会保存为UTF-8.

无论如何强制保存到UTF-8卷曲?


感谢您的建议,我发现了:

因为xml提要是动态的,所以它不是一直包含任何utf-8字符.有时它没有在整个内容UTF-8字符在所有即使它被设置为在XML编码和报头内容类型UTF-8:字符集= UTF-8.当它至少包含一个utf-8字符时,它将保存为utf-8.

当这种情况发生,袅袅不下载为UTF-8,这是有道理的,因为没有UTF-8字符,为什么有必要存储为UTF-8.

这是非常棘手的,一些验证器必须对utf-8有效,因此我仍然需要一个解决方案来强制它到utf8,因为默认情况下我的所有xml shld都是utf8编码.

尝试使用iconv f iso8859-1 utf-8的建议不适用于这种情况,因为我怀疑它不在iso8859-1.

还需要更好的解决方案.

linux curl

12
推荐指数
2
解决办法
3万
查看次数

thread_cache_size减少CPU和最大连接?

最近发现我的MySQL服务器在模拟并发100-500线程请求时达到了90%的高CPU利用率

使用默认设置以及my.cnf中的以下内容

max_connections = 500
max_allowed_packet = 16M

我注意到max_connection可以达到500,threads_created也可以高达200-500而且我认为这实际上会导致异常高的CPU

因此,而不是使用我调整的默认设置

innodb_buffer_pool_size = 2G #32bit linux server
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_thread_concurrency = 16
innodb_flush_method = O_DIRECT
innodb_additional_mem_pool_size = 20M
table_cache = 1028
thread_cache_size = 16
key_buffer_size=32M
query_cache_size=32M
join_buffer_size=1M

通过相同的负载测试,CPU下降到10%以下......但是我注意到max_connection再也不会达到500.现在不到50 ...

这是由thread_cache_size引起的吗?我调整了吗?默认情况下它是0.或者某处有什么问题...我想知道在这种情况下是否使用max连接正确测试了mysql服务器.我想测试并发线程如何能够达到max_connections但不知何故它从未以我之前测试的相同数量命中.自改变以来,它现在永远不会达到50以上.

任何的想法?

mysql

8
推荐指数
1
解决办法
2万
查看次数

有或没有EBS的Amazon EC2?

还在阅读AWS.Amazon Large Instances附带850GB本地存储空间.但是,我在故障转移的情况下读取并且我们想要启动另一个实例,我们可以在其上安装EBS卷并开始正常运行?这意味着我们必须在EBS卷上配置并存储它才能享受此功能.这是否意味着对于本地存储,如果数据保存在本地,我们将无法做到这一点?EBS单独收费,850GB的大型本地存储可能不是那么有利?EBS是否正常用于Web服务器数据,还是主要用于MySQL用于持久数据?

任何有AWS经验的人都可以拥有良好的内幕吗?这意味着我支付的大多数情况都必须购买EBS才能享受切换功能?

amazon-ec2 amazon-ebs amazon-web-services

8
推荐指数
1
解决办法
1万
查看次数

关于故障转移/复制的设置,MySQL的RDS与EC2有什么区别?

我一直在阅读RDS与EC2 for MySQL.我的问题是在设置和故障转移方面,RDS和EC2之间在MySQL方面的设置有何不同?

这是否意味着当我们在AWS上为MySQL配置RDS时,我们只需要一个具有Read Replica/Mulit-AZ部署的实例,并自动配置故障转移?

如果我们使用EC2部署,我们必须解决为主从复制设置2个MYSQL实例的麻烦吗?

任何人都可以熄灯吗?

mysql amazon-ec2 amazon-rds

7
推荐指数
1
解决办法
8636
查看次数

在linux/apache服务器上的cron作业上运行script.php但限制公共访问php文件

我有这个script.php文件,我想在我的linux/apache服务器上作为cron作业运行.

但是,我不希望公众访问www.mycompanyname.com/script.php并同时运行该脚本.

我们怎么能阻止这种情况?我们如何才能将脚本限制为服务器的访问权限?它是使用chmod还是在.htaccess文件中设置一些内容?

有什么建议?

php cron public

6
推荐指数
3
解决办法
2168
查看次数

如何使用WHERE IN mysql存储过程

如何传递数组并在存储过程中使用WHERE IN?

我需要连接输入字符串或什么?

让我们说

DELIMITER $$
DROP PROCEDURE IF EXISTS `abc`.`table1`$$
CREATE PROCEDURE  `abc`.`test`
(IN somestring VARCHAR(255))
BEGIN
    SELECT * FROM abc.table1 
    WHERE flight_type IN somestring
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures

6
推荐指数
1
解决办法
4480
查看次数

如果在循环中,php curl返回400 Bad Request

我正在尝试使用cUrl库进行屏幕刮擦.

我设法成功筛选了几个网址(5-10).

然而,无论何时我在for循环中运行它来刮取大量(10-20)网址,

它将达到一个点,最后几个网址将返回"HTTP/1.1 400 Bad Request".您的浏览器发送了此服务器无法理解的请求.
请求标头字段的数量超出此服务器的限制.

我很确定网址是正确的并且正确修剪,并且标题长度是相同的.如果我将这些最后几个网址放在列表顶部以进行抓取,它确实会通过,但是列表的最后几个再次获得400 Bad请求错误.可能是什么问题呢?可能是什么原因?

有什么建议吗?

如下所示:


for($i=0;$i > sizeof($url);$i++)    
$data[$i] = $this->get($url[$i]); 



function get($url) {

$this->headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
        $this->headers[] = 'Connection: Keep-Alive';
        $this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
        $this->user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)';

set_time_limit(EXECUTION_TIME_LIMIT);
        $default_exec_time = ini_get('max_execution_time');

        $this->redirectcount = 0;
        $process = curl_init($url);
        curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
        curl_setopt($process, CURLOPT_HEADER, 1);
        curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
        if ($this- …

php curl

5
推荐指数
1
解决办法
7627
查看次数

使用jmeter进行卷筒纸应力和载荷测试 - 有多好?基准指南?

我将用jmeter设置一些负载测试测试.但是,我在网上找不到什么是好的替补标记.好有多好?

我的网站平均每天约80,000.

从访问日志中挖掘出一些数据1个月后,我设法找出:

平均低流量约为1个请求/秒平均中等流量为30个请求/秒平均高流量为60个请求/秒

我推出了以下计划来测试8种页面,它是单页加载的理想平均响应时间:

  • 第1页 - 409毫秒
  • 第2页 - 730毫秒
  • 第3页 - 1412ms
  • 第4页 - 1811毫秒
  • 第5 - 853页
  • 第6 - 657ms页
  • 第7页 - 10毫秒
  • 第8页 - 180毫秒

模拟平均流量场景 - 10次请求/秒测试

  • 模拟用户:10个主题
  • 斜坡时间:1秒
  • 持续时间:30分钟

模拟中等流量场景 - 30次请求/秒测试

  • 模拟用户:30个线程
  • 斜坡时间:1秒
  • 持续时间:30分钟

模拟超高流量场景 - 100次请求/秒测试

  • 模拟用户:100个线程
  • 斜坡时间:1秒
  • 持续时间:30分钟

模拟攻击场景 - 350请求/秒(基于MYSQL最大连接500)

  • 模拟用户:100个线程
  • 斜坡时间:1秒
  • 持续时间:10分钟

在运行这些测试时,我计划监控以下内容:

  • CPU负载平均值:( Webserver)
  • CPU负载平均值:(DB Server)
  • RAM负载平均值:
  • RAM负载平均值:(DB Server)
  • 平均响应时间:

要查看它的内存和CPU利用率是多少,以及是否需要增加RAM,CPU等......另外我将MySQL Max连接限制为500.

在所有测试中,我预计响应时间应理想地低于10secs的上限基准.

这听起来怎么样?我没有可以遵循的SLA,这只是基于对当前网络流量的研究以及计划的出台.问题是我不知道服务器的阈值是多少.我相信下面的硬件应该已经超过托管我们页面所需的内容.

Web服务器正在运行:8GB RAM,4个Core(1个服务器,另一个冷备份服务器无负载均衡器)MySQL Server正在运行:4GB RAM,2个Core.

我们计划迁移到云,因此理想情况下需要通过此负载测试找出最适合我们场景的实例.

非常感谢这里的任何好建议..

jmeter load-testing

5
推荐指数
1
解决办法
4943
查看次数

PHP最便宜的方法如何检查远程图像是否存在

我想检查是否存在远程图像.目前使用CURL并根据其对i的响应可以确定文件是否存在.但是,这也需要花费一些时间,具体取决于图像文件的大小.

有没有最安全,最便宜的方式进行检查而不离线或使用缓存?

$ch = curl_init();
        // set URL and other appropriate options
        /*--Note: if in sabre proxy, please activate the last 4 lines--*/
        $options = array(   CURLOPT_URL => $img,
                            CURLOPT_HEADER => false,  // get the header
                            CURLOPT_NOBODY => true,  // body not required
                            CURLOPT_RETURNTRANSFER => false,  // get response as a string from curl_exec, not echo it
                            CURLOPT_FRESH_CONNECT => false,  // don't use a cached version of the url
                            CURLOPT_FAILONERROR => true,
                            CURLOPT_TIMEOUT => 5
                        );


        curl_setopt_array($ch, $options);

        if(!curl_exec($ch)) { …
Run Code Online (Sandbox Code Playgroud)

php

2
推荐指数
1
解决办法
321
查看次数

如果主服务器关闭,Codeigniter会切换到辅助数据库

我想知道是否有办法处理mysql错误并配置ci在主服务器关闭(无法连接)的情况下切换到辅助数据库服务器?

php mysql codeigniter

1
推荐指数
1
解决办法
1979
查看次数