К сожалению, никто, кроме вас, не ответит на этот вопрос.
Но дефрагментация на NTFS порой творит чудеса.
Если вы совсем бесстрашный, вы можете ещё использовать Ultradefrag, эта тулза умеет ещё и MFT дефрагментировать (90%+ к производительности, как некоторые сообщают, можете спросить у @Vadim).
вообщем у меня эта проблема решилась сама собой. Место свободное точно было. Нода ночью обновилась, ребутнулась и трафик пошёл.
u menja takaja zhe problema byla vot tolko 4to na 1 node. mesto est trafik 0. Posle restarta Nody vsjo zarabotalo. Vygljadelo kak bud-to noda dumajet 4to mesta netu.
У меня есть предположение и я думаю, что @Vadim прав - узел думал, что он полный.
Дело в том, что там есть проверка, которая устанавливает в качестве выделенного места либо то, что вы указали, либо то, что влезает в вычисленное свободное место.
Попробую пояснить: узел проверяет занятое и свободное место (по БД) в выделении, если сумма занятого и свободного превышает выделение, узел берёт наименьшее вычисленное в качестве выделения.
Как следствие, если занятое место не соответствует действительности, узел действительно может решить, что он полный. Вот только проверяет он это на старте. Вы тогда можете видеть предупреждение вида
в логах. И тогда рестарт действительно может помочь - узел перевычислит выделение согласно последней известной информации.
Это всё проясняет! Я этого не знал, что на старте только. Теперь всё сходится. Спасибо!
4-е сутки дефрагментации. Результат будет явно не скоро.
Да, оно использует низкий приоритет, чтобы не мешаться. Можно остановить нагрузку на диск и тогда пойдёт быстрее. Но это означает, что узел будет оффлайн.
Online score восстановится через 30 дней онлайн. Главное быть оффлайн не более 12 дней + неделя после (иначе не успеет восстановиться выше 60%), далее - как повезёт. Если узел будет 30 дней оффлайн или будет всё ещё ниже 60% после 30 дней ревью - вероятность дисквалификации возрастает многократно.
Мне кажется, filewalker никогда не закончит свою работу: то Windows рестарт требует (начинается всё с начала), то интернет отключился ночью (опять всё с начала), то раутер завис (опять всё с начала), а диски там на 10Т и 16Т. И вся проделанная работа сбрасывается в ноль.
это всё не влияет. Только перезапуск узла запускает filewalker с начала.
Если хотите ускорить работу filewalker, можно отключить lazy mode, но тогда в логах не будет подробных записей, однако можно будет следить на debug port методом /mon/ps
или через Монитор Ресурсов (какая папка в blobs
сейчас обрабатывается).
Ещё как влияет, потому что если это случается ночью, то даже если я перегружу раутер, то узел не продолжает работать как ни в чём не бывало. Он не останавливается, но зацикливается так, что ни что не реагирует и в дашбоар отображается, что он оффлайн. Поэтому в моём случае - только рестарт его оживляет.
Очень странно. А какая версия?
А что в логах в этот момент?
На первый взгляд - ничего особенного. Ошибки связи с сателитами. Подробнее я посмотрю, когда дома буду.
Вобщем, когда раутер завис, начались чередоваться сообщения вида:
2024-07-15T00:04:54+03:00 INFO Interrogate request received.
2024-07-15T00:04:54+03:00 INFO bandwidth Persisting bandwidth usage cache to db
2024-07-15T00:04:54+03:00 ERROR contact:service ping satellite failed {“Satellite ID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “attempts”: 1, “error”: “ping satellite: rpc: tcp connector failed: rpc: dial tcp: lookup saltlake.tardigrade.io: no such host”, “errorVerbose”: “ping satellite: rpc: tcp connector failed: rpc: dial tcp: lookup saltlake.tardigrade.io: no such host\n\tstorj.io/common/rpc.HybridConnector.DialContext.func1:190”}
Где-то через час появились другие ошибки:
2024-07-15T01:05:04+03:00 INFO orders.1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE sending {“count”: 420} 2024-07-15T01:05:04+03:00 INFO orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S sending {“count”: 1621} 2024-07-15T01:05:04+03:00 INFO orders.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6 sending {“count”: 278} 2024-07-15T01:05:04+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs sending {“count”: 958} 2024-07-15T01:05:07+03:00 INFO Interrogate request received. 2024-07-15T01:05:08+03:00 INFO Interrogate request received. 2024-07-15T01:05:08+03:00 INFO Interrogate request received. 2024-07-15T01:05:12+03:00 INFO Interrogate request received. 2024-07-15T01:05:14+03:00 INFO Interrogate request received. 2024-07-15T01:05:14+03:00 INFO Interrogate request received. 2024-07-15T01:05:15+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs finished 2024-07-15T01:05:15+03:00 INFO orders.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6 finished 2024-07-15T01:05:15+03:00 ERROR orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs failed to settle orders for satellite {“satellite ID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”, “error”: “order: failed to start settlement: rpc: tcp connector failed: rpc: dial tcp: lookup eu1.storj.io: no such host”, “errorVerbose”: “order: failed to start settlement: rpc: tcp connector failed: rpc: dial tcp: lookup eu1.storj.io: no such host\n\tstorj.io/storj/storagenode/orders.(*Service).settleWindow:294\n\tstorj.io/storj/storagenode/orders.(*Service).SendOrders.func2:231\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78”} 2024-07-15T01:05:15+03:00 INFO orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S finished 2024-07-15T01:05:15+03:00 ERROR orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S failed to settle orders for satellite {“satellite ID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”, “error”: “order: failed to start settlement: rpc: tcp connector failed: rpc: dial tcp: lookup us1.storj.io: no such host”, “errorVerbose”: “order: failed to start settlement: rpc: tcp connector failed: rpc: dial tcp: lookup us1.storj.io: no such host\n\tstorj.io/storj/storagenode/orders.(*Service).settleWindow:294\n\tstorj.io/storj/storagenode/orders.(*Service).SendOrders.func2:231\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78”}
Ещё через полтора часа появилось:
2024-07-15T02:32:28+03:00 WARN trust Failed to fetch URLs from source; used cache {“source”: “https://www.storj.io/dcs-satellites”, “error”: “HTTP source: Get "https://www.storj.io/dcs-satellites\”: dial tcp: lookup www.storj.io: no such host", “errorVerbose”: “HTTP source: Get "https://www.storj.io/dcs-satellites\”: dial tcp: lookup www.storj.io: no such host\n\tstorj.io/storj/storagenode/trust.(*HTTPSource).FetchEntries:68\n\tstorj.io/storj/storagenode/trust.(*List).fetchEntries:90\n\tstorj.io/storj/storagenode/trust.(*List).FetchURLs:49\n\tstorj.io/storj/storagenode/trust.(*Pool).fetchURLs:312\n\tstorj.io/storj/storagenode/trust.(*Pool).Refresh:195\n\tstorj.io/storj/storagenode/trust.(*Pool).Run:120\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2.1:87\n\truntime/pprof.Do:51\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2:86\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78"} 2024-07-15T02:32:28+03:00 INFO trust Scheduling next refresh {“after”: “7h47m42.930703188s”}
Большую часть времени, когда не было связи, было очень много сообщений
2024-07-15T03:37:02+03:00 INFO Interrogate request received.
Перед тем, как я проснулся и увидел сообщения о том, что узел недоступен появилось сообщение от filewalker’a:
2024-07-15T05:52:27+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker completed {“satelliteID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”, “Process”: “storagenode”, “bytesDeleted”: 585755004416, “numKeysDeleted”: 670504} 2024-07-15T05:52:28+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess finished successfully {“satelliteID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”} 2024-07-15T05:52:29+03:00 ERROR blobscache trashTotal < 0 {“trashTotal”: -279907540224} 2024-07-15T05:52:29+03:00 INFO pieces:trash emptying trash finished {“Satellite ID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”, “elapsed”: “7h47m34.1514188s”} 2024-07-15T05:52:29+03:00 INFO pieces:trash emptying trash started {“Satellite ID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”} 2024-07-15T05:52:29+03:00 INFO lazyfilewalker.trash-cleanup-filewalker starting subprocess {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”} 2024-07-15T05:52:29+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess started {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”} 2024-07-15T05:52:29+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker started {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”, “Process”: “storagenode”, “dateBefore”: “2024-07-08T05:52:29+03:00”} 2024-07-15T05:52:29+03:00 INFO Interrogate request received. 2024-07-15T05:52:29+03:00 INFO Interrogate request received. 2024-07-15T05:52:29+03:00 INFO Interrogate request received. 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess Database started {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”, “Process”: “storagenode”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker completed {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”, “Process”: “storagenode”, “bytesDeleted”: 0, “numKeysDeleted”: 0} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess finished successfully {“satelliteID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”} 2024-07-15T05:52:30+03:00 INFO pieces:trash emptying trash finished {“Satellite ID”: “121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6”, “elapsed”: “1.2118596s”} 2024-07-15T05:52:30+03:00 INFO pieces:trash emptying trash started {“Satellite ID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker starting subprocess {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess started {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker started {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “Process”: “storagenode”, “dateBefore”: “2024-07-08T05:52:30+03:00”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess Database started {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “Process”: “storagenode”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker completed {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “bytesDeleted”: 0, “numKeysDeleted”: 0, “Process”: “storagenode”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess finished successfully {“satelliteID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”} 2024-07-15T05:52:30+03:00 INFO pieces:trash emptying trash finished {“Satellite ID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “elapsed”: “247.805ms”} 2024-07-15T05:52:30+03:00 INFO pieces:trash emptying trash started {“Satellite ID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker starting subprocess {“satelliteID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker subprocess started {“satelliteID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess trash-filewalker started {“satelliteID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”, “Process”: “storagenode”, “dateBefore”: “2024-07-08T05:52:30+03:00”} 2024-07-15T05:52:30+03:00 INFO lazyfilewalker.trash-cleanup-filewalker.subprocess Database started {“satelliteID”: “12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S”, “Process”: “storagenode”}
Когда я перезапустил роутер появились ошибки вида:
2024-07-15T06:05:04+03:00 INFO orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S finished 2024-07-15T06:05:06+03:00 INFO orders.1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE finished 2024-07-15T06:05:06+03:00 INFO orders.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6 sending {“count”: 237} 2024-07-15T06:05:06+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs sending {“count”: 1131} 2024-07-15T06:05:06+03:00 INFO orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S sending {“count”: 1141} 2024-07-15T06:05:06+03:00 INFO orders.1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE sending {“count”: 231} 2024-07-15T06:05:08+03:00 INFO orders.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6 finished 2024-07-15T06:05:08+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs finished 2024-07-15T06:05:08+03:00 ERROR orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs failed to archive orders {“error”: “order: ordersfile: rename C:\Program Files\Storj\Storage Node\orders\unsent\unsent-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000.v1 C:\Program Files\Storj\Storage Node\orders\archive\archived-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000-1721012708812063200-ACCEPTED.v1: The process cannot access the file because it is being used by another process.”, “errorVerbose”: “order: ordersfile: rename C:\Program Files\Storj\Storage Node\orders\unsent\unsent-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000.v1 C:\Program Files\Storj\Storage Node\orders\archive\archived-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000-1721012708812063200-ACCEPTED.v1: The process cannot access the file because it is being used by another process.\n\tstorj.io/storj/storagenode/orders/ordersfile.MoveUnsent:132\n\tstorj.io/storj/storagenode/orders.(*FileStore).Archive:314\n\tstorj.io/storj/storagenode/orders.(*Service).SendOrders.func2:260\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78”} 2024-07-15T06:05:09+03:00 INFO orders.1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE finished 2024-07-15T06:05:10+03:00 INFO Interrogate request received. 2024-07-15T06:05:10+03:00 INFO Interrogate request received. 2024-07-15T06:05:10+03:00 INFO Interrogate request received. 2024-07-15T06:05:10+03:00 INFO orders.12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S finished 2024-07-15T06:05:10+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs sending {“count”: 1131} 2024-07-15T06:05:11+03:00 INFO orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs finished 2024-07-15T06:05:11+03:00 ERROR orders.12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs failed to archive orders {“error”: “order: ordersfile: rename C:\Program Files\Storj\Storage Node\orders\unsent\unsent-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000.v1 C:\Program Files\Storj\Storage Node\orders\archive\archived-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000-1721012711307385600-ACCEPTED.v1: The process cannot access the file because it is being used by another process.”, “errorVerbose”: “order: ordersfile: rename C:\Program Files\Storj\Storage Node\orders\unsent\unsent-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000.v1 C:\Program Files\Storj\Storage Node\orders\archive\archived-orders-12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs-1720987200000000000-1721012711307385600-ACCEPTED.v1: The process cannot access the file because it is being used by another process.\n\tstorj.io/storj/storagenode/orders/ordersfile.MoveUnsent:132\n\tstorj.io/storj/storagenode/orders.(*FileStore).Archive:314\n\tstorj.io/storj/storagenode/orders.(*Service).SendOrders.func2:260\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78”}
После того, как в дашбоарде не обновилась информация о том, что узел снова онлайн, я попытался сделать рестарт сервису storagenode и он в этом состоянии завис:
2024-07-15T06:06:56+03:00 WARN servers service takes long to shutdown {“name”: “server”} 2024-07-15T06:06:56+03:00 WARN services service takes long to shutdown {“name”: “retain”} 2024-07-15T06:06:56+03:00 INFO servers slow shutdown {“stack”: "goroutine 1047 [running]:\nstorj.io/storj/private/lifecycle.(*Group).logStackTrace.func1()\n\t/go/src/storj.io/storj/private/lifecycle/group.go:107 +0x71\nsync.(*Once).doSlow(0xc00004a680?, 0xc002720080?)\n\t/usr/local/go/src/sync/once.go:74 +0xbf\nsync.(*Once).Do(…)\n\t/usr/local/go/src/sync/once.go:65\nstorj.io/storj/private/lifecycle.(*Group).logStackTrace(0xc000313eb8?)\n\t/go/src/storj.io/storj/private/lifecycle/group.go:104 +0x3c\nstorj.io/storj/private/lifecycle.(*Group).Run.func1({0x20a3930?, 0xc0019822d0?})\n\t/go/src/storj.io/storj/private/lifecycle/group.go:77 +0x2a5\nruntime/pprof.Do({0x20a3b98?, 0xc001826dc0?}, {{0xc00181e760?, 0x0?, 0xc0016f3da0?}}, 0xc00181ab80)\n\t/usr/local/go/src/runtime/pprof/runtime.go:51 +0x9d\ncreated by storj.io/storj/private/lifecycle.(*Group).Run in goroutine 20\n\t/go/src/storj.io/storj/private/lifecycle/group.go:64 +0x509\n\ngoroutine 1 [syscall, locked to thread]:\nsyscall.SyscallN(0x7ffbf1807e20?, {0xc000121c28?, 0x3?, 0x0?})\n\t/usr/local/go/src/runtime/syscall_windows.go:544 +0x107\nsyscall.Syscall(0x1aac9c0?, 0x60?, 0xc?, 0xc000121c88?, 0x13fecf9?)\n\t/usr/local/go/src/runtime/syscall_windows.go:482 +0x35\ngolang.org/x/sys/windows.StartServiceCtrlDispatcher(0x1d2e8c1?)\n\t/go/pkg/mod/golang.org/x/sys@v0.19.0/windows/zsyscall_windows.go:1353 +0x4f\ngolang.org/x/sys/windows/svc.Run({0x1d2e8c1?, 0xb?}, {0x20964e0?, 0xc0000a44b0?})\n\t/go/pkg/mod/golang.org/x/sys@v0.19.0/windows/svc/service.go:295 +0x131\nmain.startAsService(0xc00023a600)\n\t/go/src/storj.io/storj/cmd/storagenode/service_windows.go:62 +0x32d\nmain.main()\n\t/go/src/storj.io/storj/cmd/storagenode/main.go:26 +0x235\n\ngoroutine 17 [select, locked to thread]:\ngolang.org/x/sys/windows/svc.serviceMain(0x1, 0x1b63af1bdd8)\n\t/go/pkg/mod/golang.org/x/sys@v0.19.0/windows/svc/service.go:247 +0x3a6\n\ngoroutine 19 [semacquire]:\nsync.runtime_Semacquire(0xc0002bd6d8?)\n\t/usr/local/go/src/runtime/sema.go:62 +0x25\nsync.(*WaitGroup).Wait(0xed9b37?)\n\t/usr/local/go/src/sync/waitgroup.go:116 +0x48\ngolang.org/x/sync/errgroup.(*Group).Wait(0xc00022f940)\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:56 +0x25\nmain.(*service).Execute.func2()\n\t/go/src/storj.io/storj/cmd/storagenode/service_windows.go:110 +0x17\nmain.(*service).Execute(0xc0000a44b0, {0x0?, 0x0?, 0x0?}, 0x0?, 0x0?)\n\t/go/src/storj.io/storj/cmd/storagenode/service_windows.go:142 +0x553\ngolang.org/x/sys/windows/svc.serviceMain.func2()\n\t/go/pkg/mod/golang.org/x/sys@v0.19.0/windows/svc/service.go:235 +0x43\ncreated by The Go Programming Language in goroutine 17\n\t/go/pkg/mod/golang.org/x/sys@v0.19.0/windows/svc/service.go:234 +0x25c\n\ngoroutine 20 [semacquire, 4802 minutes]:\nsync.runtime_Semacquire(0x1?)\n\t/usr/local/go/src/runtime/sema.go:62 +0x25\nsync.(*WaitGroup).Wait(0xc0002c7770?)\n\t/usr/local/go/src/sync/waitgroup.go:116 +0x48\ngolang.org/x/sync/errgroup.(*Group).Wait(0xc00181aa80)\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:56 +0x25\nstorj.io/storj/storagenode.(*Peer).Run(0xc0000f62c0, {0x20a3968, 0xc001818b90})\n\t/go/src/storj.io/storj/storagenode/peer.go:967 +0x42b\nmain.cmdRun(0x1b67fc00ba8?, 0xc000284000)\n\t/go/src/storj.io/storj/cmd/storagenode/cmd_run.go:123 +0xdc5\nmain.newRunCmd.func1(0x1b9d920?, {0xc00022cf60?, 0xc00023b500?, 0xf199a0?})\n\t/go/src/storj.io/storj/cmd/storagenode/cmd_run.go:33 +0x17\nstorj.io/common/process.cleanup.func1.4({0x20a3b98?, 0xc0003b0320})\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:393 +0x149\nstorj.io/common/process.cleanup.func1(0xc00023b500, {0xc00038a1a0, 0x0, 0x2})\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:411 +0x1c88\ngithub.com/spf13/cobra.(*Command).execute(0xc00023b500, {0xc00038a180, 0x2, 0x2})\n\t/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:983 +0xabc\ngithub.com/spf13/cobra.(*Command).ExecuteC(0xc00023a600)\n\t/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff\ngithub.com/spf13/cobra.(*Command).Execute(…)\n\t/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1039\nstorj.io/common/process.ExecWithCustomOptions(0xc00023a600, {0x1, 0x1, 0x1, 0x0, 0x1f8fa70, 0x0})\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:112 +0x1c9\nstorj.io/common/process.ExecWithCustomConfigAndLogger(…)\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:77\nstorj.io/common/process.ExecWithCustomConfig(…)\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:72\nstorj.io/common/process.Exec(0x0?)\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:62 +0x5a\nmain.(*service).Execute.func1()\n\t/go/src/storj.io/storj/cmd/storagenode/service_windows.go:107 +0x57\ngolang.org/x/sync/errgroup.(*Group).Go.func1()\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56\ncreated by The Go Programming Language in goroutine 19\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96\n\ngoroutine 21 [select]:\nstorj.io/monkit-jaeger.(*ThriftCollector).Run(0xc0003e2900, {0x20a3968, 0xc0003de370})\n\t/go/pkg/mod/storj.io/monkit-jaeger@v0.0.0-20240221095020-52b0792fa6cd/thrift.go:174 +0x2cf\nstorj.io/common/process.cleanup.func1.2()\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:351 +0x1f\ngolang.org/x/sync/errgroup.(*Group).Go.func1()\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56\ncreated by The Go Programming Language in goroutine 20\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96\n\ngoroutine 22 [semacquire, 4802 minutes]:\nsync.runtime_Semacquire(0xc0000a4228?)\n\t/usr/local/go/src/runtime/sema.go:62 +0x25\nsync.(*WaitGroup).Wait(0x1c4fc20?)\n\t/usr/local/go/src/sync/waitgroup.go:116 +0x48\ngolang.org/x/sync/errgroup.(*Group).Wait(0xc00022e3c0)\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:56 +0x25\nstorj.io/common/debug.(*Server).Run(0xc0005a4000, {0x20a38f8, 0x28c1340})\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/debug/server.go:203 +0x33c\nstorj.io/common/process.initDebug.func1()\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/debug.go:40 +0xf4\ncreated by storj.io/common/process.initDebug in goroutine 20\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/debug.go:37 +0xf0\n\ngoroutine 23 [syscall, 4802 minutes]:\nos/signal.signal_recv()\n\t/usr/local/go/src/runtime/sigqueue.go:152 +0x29\nos/signal.loop()\n\t/usr/local/go/src/os/signal/signal_unix.go:23 +0x13\ncreated by os/signal.Notify.func1.1 in goroutine 20\n\t/usr/local/go/src/os/signal/signal.go:151 +0x1f\n\ngoroutine 24 [chan receive, 4802 minutes]:\nstorj.io/common/process.Ctx.func1()\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:139 +0x39\ncreated by storj.io/common/process.Ctx in goroutine 20\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/process/exec_conf.go:138 +0x2c7\n\ngoroutine 9 [chan receive, 4802 minutes]:\nstorj.io/common/debug.(*Server).Run.func3()\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/debug/server.go:182 +0x35\ngolang.org/x/sync/errgroup.(*Group).Go.func1()\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56\ncreated by The Go Programming Language in goroutine 22\n\t/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96\n\ngoroutine 10 [chan receive, 4802 minutes]:\nstorj.io/drpc/drpcmigrate.(*ListenMux).Run(0xc0001ce000, {0x20a3968?, 0xc000094190?})\n\t/go/pkg/mod/storj.io/drpc@v0.0.34/drpcmigrate/mux.go:90 +0x12e\nstorj.io/common/debug.(*Server).Run.func4()\n\t/go/pkg/mod/storj.io/common@v0.0.0-20240425113201-9815a85cbc32/debug/server.go:186 +0x31\ngolang.org/x/sync/e
И висел около получаса, пока я его принудительно не остановил и не запустил заново.
DNS не работал, попробуйте его поменять на 8.8.8.8, видимо ваш нестабильный.
trash filewalker появляется просто каждый час, так что это независимое событие.
А это либо системный диск умирает, либо антивирус блокирует. Если антивирус - рекомендуется исключить папку "C:\Program Files\Storj\Storage Node\orders"
из его сканера. А диск нужно проверить на ошибки и исправить их, ещё неплохо было бы проверить S.M.A.R.T.
а это уже проблемы либо с системным диском, либо с памятью.
DNS не работал, попробуйте его поменять на 8.8.8.8
Так ведь интернета не было.
Остальное я попроверяю ещё.
Кстати, можно ли как-то узнать (кроме поиска в логе), работает ли filewalker или он вылетел по коду exit status 1?
Если lazy mode включен, можно по логам. Если выключен - то либо через debug port и метод /mon/ps
, либо через Resources Monitor (или аналог), чтобы видеть, в какой папке процесс сейчас работает.
это характерно только для lazy, после этого он уже работать не будет до перезапуска. Если lazy отключен, то он может вылететь только вместе с узлом.
В Resources Monitor у меня, например, 3 процесса с названием storagenode; а если смотреть в раздели дисковой активности, то вообще около 20. Какой из них filewalker?
Вас будет интересовать тот, у которого присутствует в командной строке filewalker
. К сожалению в Windows Resources Monitor не показывает строку вызова, поэтому нужно смотреть тот, который практически не имеет сетевой активности, но щупает файлы в папке blobs
или trash
.
Спустя 2 месяца после обнаружения несоответствия реального и “виртуального” свободного места один из дисков (который под Windows GUI) всётаки (тьфу-тьфу-тьфу) вернулся в своё нормальное состояние.
Второй диск, который в докере, всё ещё отображается с разницей в 3.5Т в пользу ноды.
Это результат последних BF от спутников, они теперь не включают данные с истёкшим сроком годности. Эти данные должны удаляться самостоятельно, но из-за проблем с производительностью БД при поступлении большого количества таких данных, некоторые кусочки не были зарегистрированы в TTL БД узла и поэтому просто занимали место на диске - их не удалял TTL collector, потому что о них не было записей в БД и не удалял GC в корзину, потому что на сателлите они ещё удаляются (тоже проблемы с производительностью БД, но теперь уже на спутнике). В итоге не удалённый мусор мог достаточно долго быть на узлах.
Теперь BF не включают данные с истёкшим сроком годности, поэтому GC смог переместить их в корзину.
Насчёт второго узла в docker, убедитесь, что использование на dashboard совпадает с использованием на диске, которое показывает ОС (вам нужно смотреть в десятичных единицах измерения). Если они близки - тогда просто сборщик мусора пока что не закончил свою работу.