0

我正在开发基于 Laravel Octane 和 Swoole 的地理地图服务器。服务器是用 Forge 和 DigitalOcean 创建的。一切正常,包括 Octane 路线和 Octane Swoole 表。我可以轻松地从内存中写入和读取数据。但是当我尝试用完整的地理数据集(~1Gb)预填充 Swoole 表时,在成功填充大约 600Mb 后,我总是遇到“无法分配内存”的问题。但是,到目前为止,服务器在 4Gb 中还有超过 1.5Gb 的可用内存。Octane Swoole 表似乎有一个限制,我不知道如何控制。是吗?关于如何解决问题的任何想法?

生产错误:

Swoole\Table::set(): failed to set('z7y71x80'), 无法分配内存 {"exception":"[object] (ErrorException(code: 0): Swoole\Table::set(): failed to设置('z7y71x80'),无法在 /home/forge/map.blitztest.ru/app/Console/Commands/CacheMapTiles.php:64 分配内存)

Octane Swoole 表配置:

'tables' => [
    'tiles:21844' => [
        'table' => 'int:1',
    ],
    'tiles1:9910' => [
        'tile' => 'string:1000',
    ],
    'tiles2:1508' => [
        'tile' => 'string:10000',
    ],
    'tiles3:888' => [
        'tile' => 'string:30000',
    ],
    'tiles4:1149' => [
        'tile' => 'string:50000',
    ],
    'tiles5:2219' => [
        'tile' => 'string:70000',
    ],
    'tiles6:1758' => [
        'tile' => 'string:90000',
    ],
    'tiles7:2100' => [
        'tile' => 'string:110000',
    ],
    'tiles8:1631' => [
        'tile' => 'string:130000',
    ],
    'tiles9:681' => [
        'tile' => 'string:176906',
    ],
],
4

0 回答 0