在資料庫表中有180萬條記錄,我想通過fos:elastica:populate命令進行索引。當彈性搜索中已經有~500.000個檔案時,索引就會突然停止。
在后端服務器的 dmesg 中,我看到了這個:
[19314221.670723] Out of memory: 殺死行程2640772 (php) total-vm:21738676kB, anon-rss:19847596kB, file-rss。 4kB, shmem-rss:0kB, UID: 0 pgtables:42352kB oom_score_adj:0
[19314224. 812907] oom_reaper: 收割行程2640772 (php), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
Elasticsearch、MySQL和PHP Symfony后端(運行populate的地方)是在不同的服務器上。
我怎樣才能解決這個問題并將檔案填入elastica呢?
FOSElasticaBundle是v5.1.0
。uj5u.com熱心網友回復:
好吧。我發現的唯一解決方案(不包括租用一個強大的服務器的可能性)是用bash腳本在部分地區運行populate命令。
下面是一個索引剩余資料的腳本樣本。
#!/bin/bash
for i in {6000..18000..4000}。
do。
bin/console fos:elastica:populate --no-reset --first-page="$i" --last-page="$((i 4000))"
完成
bin/console fos:elastica:populate --no-reset --first-page=18000。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310763.html
標籤:
