물고기가 수면에서 입을 뻐끔거리는 이유 — 과밀과 저산소

작성 2026-10-13

물고기가 수면 가까이서 입을 자꾸 뻐끔거리면 아가미로 산소를 충분히 못 얻고 있다는 뜻이에요 — 공기와 더 가까운 수면에서 조금이라도 더 녹은 산소를 찾는 거예요. 이 시뮬레이터로 돌려보면, 수질(암모니아·아질산)은 멀쩡해도 물고기 수가 여과기·어항이 감당할 양을 넘으면 산소만 조용히 바닥까지 떨어져요. 60cm 어항에 팬더코리도라스 12마리(추천 범위)를 넣었을 때는 90일 내내 산소가 위험선 아래로 한 번도 안 내려갔지만, 같은 어항·같은 여과기에 20마리를 넣자 33일째부터 "상태가 나빠지고 있다"는 경고가 떴고 38일째부터 57일째까지 저산소로 한 마리씩 죽어 17마리만 남았어요. 마릿수는 그대로 두고 기포기 하나만 추가하자 20마리 전부 90일을 살아남았어요.

입을 뻐끔거리는 게 왜 저산소 신호인가요

물고기는 아가미로 물에 녹은 산소를 걸러 써요. 물속 산소가 떨어지면 몸을 더 움직여 숨을 몰아쉬게 되고, 그중에서도 물과 공기가 맞닿는 수면 쪽이 상대적으로 산소가 더 많아서 그곳으로 올라와 뻐끔거리는 행동이 먼저 나타나요. 이 시뮬레이터에는 "뻐끔거림" 자체를 그리지는 않지만, 같은 상황을 "상태가 나빠지고 있어요"라는 경고 로그로 기록해요 — 실제 어항에서 수면을 서성이는 행동과 같은 자리에서 뜨는 조용한 적신호예요.

물이 머금을 수 있는 산소 자체도 한계가 있어요. 이 시뮬레이터의 포화 산소 계산식으로는 24°C에서 물 1L에 최대 8.33mg까지만 녹아요. 물고기·여과 박테리아가 쓰는 양이 늘어나는데 수면에서 다시 채워지는 속도가 그만큼 못 따라가면, 수조 전체 산소가 서서히 깎여 내려가요.

실제로 돌려보니 — 8마리 차이가 생사를 갈랐어요

60cm 표준 어항에 외부여과기(대형)를 달고 기포기 없이 24°C로 맞췄어요. 충분히 물잡이를 마친 뒤 30일째에 팬더코리도라스를 투입해 90일을 지켜봤어요. 팬더코리도라스는 저산소 내성이 기본(1.0)보다 낮은 0.8이라 더 일찍 반응해요.

추천 범위인 12마리를 넣었을 때는 90일 내내 산소가 5.52mg/L 밑으로 안 내려갔고 경고도, 폐사도 없었어요(12마리 전부 생존). 같은 어항·같은 여과기에 20마리를 넣자 산소가 3.66mg/L까지 떨어졌고, 33일째 "저산소"가 주된 원인으로 상태 악화 경고가 떴어요. 그러고도 그대로 두니 38일째·45일째·57일째에 한 마리씩 죽었는데, 세 번 다 로그에 적힌 원인은 저산소 100%였어요(암모니아·아질산은 거슬리지 않았어요 — 아질산 최고치가 테스트기 기준 0.24ppm으로 위험선 0.8ppm에 한참 못 미쳤어요). 결국 17마리만 남았어요.

조건생존첫 경고첫 폐사마지막 폐사
12마리 · 기포기 없음12/12없음없음없음
20마리 · 기포기 없음17/2033일째38일째57일째
20마리 · 기포기 추가20/20없음없음없음

고치는 법 — 마릿수를 줄이거나 기포기를 추가

과밀을 푸는 방법은 둘 중 하나예요. 마릿수를 추천 범위로 줄이거나, 마릿수는 그대로 두고 수면 교란을 늘리는 거예요. 20마리를 넣은 같은 어항에 기포기 하나만 더해(수면 교란을 0에서 0.8로 올렸어요, 마릿수는 손대지 않았어요) 다시 90일을 돌려보니 산소가 5.86mg/L 아래로 안 내려갔고 경고도 폐사도 한 건도 없이 20마리 전부 살아남았어요. 기포기가 수면을 흔들어 물과 공기가 맞바꾸는 속도를 끌어올린 덕분에, 마릿수가 쓰는 산소량은 그대로여도 다시 여유가 생긴 거예요.

날씨가 더워지면 물이 머금을 수 있는 산소 자체가 줄어서, 평소엔 괜찮았던 마릿수도 여름철에만 뻐끔거릴 수 있어요. 수면 가까이서 입을 자주 뻐끔거리는 모습이 보이면 마릿수와 여과기의 수면 교란을 먼저 점검해 보세요.

아래 버튼은 이 글에서 돌린 어항 중 기포기를 추가해 20마리 전부 살아남은 어항이에요.

이 어항 직접 돌려 보기

이 글의 숫자는 물 키우기 시뮬레이터 모델로 계산한 결과이며, 실제 어항은 다를 수 있어요.