On Fri, Feb 23, 2007 at 05:34:36PM +0300, Александр Ворона wrote:
> Igor Sysoev пишет:
> > и 574M за один вызов - это круто. Нужно лечить Линкус.
> видимо да :(
> Может тогда сделать опцию/переменную для задания макс. размера
> sendfile() для больных? Естественно per-location :)
limit_rate 1M;
больше 1M за раз не будет передаваться. Хотя я думаю, описанный случай -
это локальный ethernet c огромными окнами.
> на бсд(6.1-RELEASE i386) много вызовов, и ни один из них на sendfile по
> названию не похож :)
> recvfrom(11, "GET /1.tar.gz HTTP/1.0\r\n"..., 1024, 0, NULL, NULL) = 121
> open("/home/admin/1.tar.gz", O_RDONLY) = 14
> fstat(14, {st_mode=070160, st_size=6998629143282321979, ...}) = 0
> setsockopt(11, IPPROTO_TCP, 0x4 /* TCP_??? */, [1702389024], 4) = 0
> syscall_393(0xe, 0xb, 0, 0, 0x74e54d67, 0xbfbfe4a0, 0xbfbfe098, 0) = -1
> (errno 35)
> kevent(0xd, 0x80a3000, 0x1, 0x80b9000, 0x200, 0xbfbfea50) = 1
> gettimeofday({1819042848, 538970683}, NULL) = 0
> syscall_393(0xe, 0xb, 0x8000, 0, 0x74e4cd67, 0xbfbfe610, 0xbfbfe208, 0)
> = -1 (errno 35)
> kevent(0xd, 0x80a3000, 0, 0x80b9000, 0x200, 0xbfbfea50) = 1
> gettimeofday({1885413408, 1667853424}, NULL) = 0
> syscall_393(0xe, 0xb, 0x9000, 0, 0x74e4bd67, 0xbfbfe610, 0xbfbfe208, 0)
> = -1 (errno 35)
Это нужно лечить программу, потому как и kdump, и truss вместо
syscall_393 показывает sendfile.
--
Игорь Сысоев
http://sysoev.ru