【DM版本】:DM8
【操作系统】:centos7
【CPU】:intel
【问题描述】:
通过curl方式查询接口,大概1M左右的数据,nginx提示502,查看后发现是FPM意外退出;使用的PDO方式查询,但是如果使用DM方式则正常;
php的memory_limit与响应时间等都已设置足够大了,nginx的fastcgi_buffer等也相应进行设置了。
php版本:8.0
nginx提示:
nginx错误日志:
php错误日志:
测试代码:
<?php
$dm_conf = array(
'host' => '127.0.0.1:5236', //连接地址及端口
'db' => 'TOP', //数据库名
'db_user' => 'TOP', //用户名
'db_pwd' => 'Tion', //密码
);
$pdo = new \PDO("dm:host=" . $dm_conf['host'] . ";dbname=" . $dm_conf['db'] . "",
$dm_conf['db_user'],
$dm_conf['db_pwd']
);
$pdo->exec('SET SCHEMA TOP;');
$sql = "select cur_code, border_center_lng, border_center_lat, border_points from sp_admin_area_border where
sp_admin_area_border.CUR_CODE in (440303000000, 440304000000, 440305000000, 440306000000, 440307000000, 440308000000,
440309000000, 440310000000, 440311000000, 440361000000, 440365000000)";
$stmt = $pdo->prepare($sql);
if ($stmt === false) {
var_dump($pdo->errorInfo());
die;
}
$rs = $stmt->execute();
if ($rs) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// border_points为长文本字段,会自动被截取至255个字符
var_dump($row);
}
}
cli下执行是正常的,但是长文本会被自动截断为255个字符;请问该如何解决此问题?
有人吗?
数据库中执行对应的查询响应是很快的,几十毫秒;

curl请求接口是秒挂,目前怀疑是内存方面的错误读取原因,以下是通过dmesg打印出来的日志: