Linux I/O多重化の仕組み:select、poll、epollの技術詳解
1. selectによるI/O監視
selectは、複数のファイルディスクリプタ(FD)を監視し、いずれかが読み書き可能な状態になるまでプロセスを待機させる古典的な手法です。一般的に、監視可能なFDの最大数は1024(FD_SETSIZE)に制限されています。
select関数の定義
int select(int max_fd_plus_1, fd_set *read_fds, fd_set *write_fds, fd_set *error_fds, struct timeval *ti ...
7月22日 04:29 投稿
LinuxシステムにおけるTCP接続制限の確認と拡張手順
1. 現在のTCP接続ステータスの確認
システム全体のTCP接続状況を把握するために、以下のコマンドを使用して現在のセッション数をカウントします。
# 確立された接続(ESTABLISHED)のみをカウントする場合
ss -atn | grep -c "ESTAB"
# 全てのソケット状態の概要を表示
ss -s
接続数が後述するシステム制限値に近い場合、新規接続の拒否やレイテンシの増加が発生する ...
6月7日 22:43 投稿
実務で役立つシェルスクリプト自動化ツール集
1. 不審なアクセス元IPの自動ブロック
Nginxのアクセスログを監視し、短時間で頻繁にリクエストを送るIPを特定してiptablesで遮断します。
#!/bin/bash
TARGET_LOG="/var/log/nginx/access.log"
THRESHOLD=20
CURRENT_TIME=$(date +%d/%b/%Y:%H:%M)
# 直近でアクセス数が多いIPを抽出
ABUSIVE_IPS=$(tail -n 1000 "$TARGET_LOG" | grep "$CURRENT_TIME" | awk '{a[$1]++} ...
5月19日 21:24 投稿